This file contains the history of changes to the original SPFLite and SPFLite2
versions of the program. The current Changes.TXT file tracks the changes to the
newer SPFLite3 version of the program.

Chronologically in reverse date order (i.e. oldest at the bottom)

Between 3.0.24026 AND 3.0.24069 (Mar 09/2024
=============================================

*  If using Beta versions, the option to run only a single Instance was
   crippled. This has been corrected.

*  An error in how AUTO files were loaded has been corrected. It was effectively
   turning colorization off.

*  If an "EDIT file-name" command is issued, and the file does not exist, it is
   supposed to create an Empty file. It has not been doing so for some time.
   This has been corrected.

*  The MRF (Most Recent File) list was not being consistently reset during
   startup, depending on the startup options. This has been corrected.

*  A variety of problems related to the handling and display of messages has
   been corrected. Particularly with messages related to tab startup and
   shutdown. There were several messages of this type which were simply
   'disappearing'.


Between 3.0.23313 AND 3.0.24026 (Jan 26/2024
=============================================

*  Added new primitve (CmdLog) to toggle (ON/OFF) the debugging command logger.
   Normally only used if requested by SPFLite support to aid in solving reported
   problems.

*  The number of UNDO levels option will be removed as a Profile Level item and
   will become an Options => General item. Automatic migration will be done and
   the setting will be made to the highest value currently used by any Profile.

*  Correct several errors in handling UNDO/REDO commands. Errors were corrected
   in the commands CLIP, COPY, and in the main UNDO support itself.

*  Correct an error in how internal data memory tables are expanded to prevent
   affecting special line storage (e.g. PROF lines).

*  Correct MINLEN command. If the MINLEN value was increasing, it was failing to
   adjust the existing lines in the session.

*  Correct macro function Get_RBound. If RBound was 0 (MAX) is was incorrectly
   returning the maximum length data line.

*  Correct PRESERVE handling when AUTOCAPS ON is also specified.

*  Correct coding error in the DIFF support for removing comments from the
   data being compared.

*  Correct error in parsing the -FILEOPEN file contents which could cause the
   contents to be ignored.

*  Correct error in a FIND PREV type search. It was not finding strings which
   were ON the cursor line to the left of the cursor column.

*  Add several enhanced Primitives to support TABS delimited column mode editing.
   So, what is Column Mode Editing?

   Well, it uses the TABS settings to organize the data into 'columns', and
   normal KB activity will honor column widths IF ASKED FOR. This means character
   typing in INS, OVR or DIN mode. The DEL, BS, DataDelete and DataBS will also
   adapt to the new mode.

   How is it asked for? The new Primitive (TabBNDS). This will toggle this new
   mode. It will be displayed in the INS/OVR box of the Status Bar.

   Other new associated Primitives are:
     (TabShift)   - Will take all data from the current cursor column and shift
                    it right to the next 'column' boundary.
     (TabRelease) - In INS mode, you may 'push' characters into the next column.
                    When this would occur, the function will be stopped, with
                    an Audible/Visible Beep. (TabRelease) will temporarily stop
                    column oriented activity for the current line.

   Note: When typing in a column, if all further columns are blank, the check
         for overlowing a column will not be made, as no further data is impacted.

*  Add several requested new MACRO functions:
     Get_Arg_LRef_Count
     Get_Arg_NumLit_Count
     Get_Arg_Tag_Count
     Get_Arg_TextLit_Count
     Get_ANSI2SOURCE_Table$
     Get_SOURCE2ANSI_Table$
   For details of these functions, please see the Help Documentation

*  Correct cursor positioning of 'N' inserted lines when there is actual data in
   the MASK line.

*  Correct handling of the -F * operand in the INSTANCE command.

*  Correct error in the SUBMIT handling of INCLUDED files.

*  Correct error in the Line Command table which caused some line commands to
   reject / or \ modifiers.

*  Update macro function Get_Profile$() to add the new MACLIB profile paramater.

*  Correct parsing error when a Picture literal contains only a single *.

*  Minor tweaks to INSTANCE support. If the -F filename has no path specified,
   the SPFLite HomeFolder will be added. An extra reset of the Most Recent Files
   list when the END operand was used, was removed. Some overlooked Doc. changes
   were completed.


Between 3.0.23259 AND 3.0.23313 (Nov 09/2023)
=============================================

*  Correct File Manager handling of FLISTS with a mixture of single path and
   extended path requests.

*  Correct error in the main Line Command table for the TR command.

*  Alter PRESERVE OFF handling so that if the trailing blanks to be removed
   contain any Attribute values (like hi-lighting), the line will retain the
   needed blanks to retain the hi-lighting.

*  Correct the COPY command. It was incorrectly using the Current Directory
   rather than the directory from which the loaded file was read. This caused
   incorrect "Missing File" messages

*  If "Minimize to Tray" ia activated, the ToolTip text has been modified to
   display the Instance name if other than DEFAULT.

*  Add new -FILEOPEN command line option. This allows you to specify the name of
   a text file containing filenames to be opened. You can open multiple files in
   tabs, or in MEdit sessions. For individual files you can also specify if they
   are to be opened in View or Browse modes. Read the new section - "FileOpen
   Startup Files" in "Working with" in the Help file

*  Add the new Primary command INSTANCE (alias INST). This command can be used
   to switch the SPFLite session to another Instance. It will start a new
   SPFLite Instance and optionally close the current session.

   If there are active Edit tabs, the command provides optional operands to
   allow you to request they all be CANCELed or ENDed. If END is chosen, each
   tab will use the current AUTOSAVE option to determine if, and what level of
   prompting to perform. There is also a KEEP option which does not close the
   current session.

   The syntax is:
      INSTANCE new-instance-name
      INST     [ END | CANCEL | CAN | KEEP ]
               [ -F { * | FileOpen-Name } ]
               [ -D DoMacro-Name ]
      Other than new-instance-name which MUST be operand one, the
      remaining operands can be entered in any order.

   Notes: Some accompanying items
          * The command line -F operand will now accept an * to indicate the
            current _FILEOPEN.TXT contents are to be treated as the FILEOPEN
            data.

          * To accomany the above, the INSTANCE command will, as long as the new
            Instance-name is not the Current Instance Name, create a valid
            _FILEOPEN.TXT file in the SPFLite Home folder (the one holding the
            CFG file) with the list of the currently open tabs.

          * The passing of files to be opened to an existing Instance has been
            improved to support multiple files and/or MEdit lists.

          * The KEEP option also allows you to request the current session be
            kept open. If the new-instance-name equals the current name, the
            _FILELIST.TXT file can be used to ADD open files to the session.

            For example, if running normally as DEFAULT the command
              INST DEFAULT -F MyNewList.TXT KEEP
            would add the files in the specified file to the current session.

            The following would reopen the current Edit tabs in a new INSTANCE
              INST MYNEWINST -F * END



*  Extend the File Manager ALL command to support the END and CANCEL commands.
   These of course can only be used when displaying the Open Tabs list.

*  V3.0.23253 revised the handling of FM line commands to correct several
   inconsistencies. The support for the C/CC line commands (used with the CUT
   primary command) was crippled. It has been restored.

*  Add a new macro function Get_Instance$ to return the name of the Instance
   the session is running under.

*  Correct error in re-opening files when more that 1 tab was a MEdit session.
   The MEdit tabs were incorrectly merged into a single MEdit session.

*  Correct error in the command table definition for the FM ML command.

*  When creating a new INSTANCE, if the Instance being used as the model for
   the new Instance has unique EFT, KBD, SET and Retrieve tables, then then
   will be used for the new Instance. Previously, those 4 tables were always
   copied from the DEFAULT Instance. If they do not have unique tables then the
   copy will still be made from the DEFAULT Instance.

*  Correct erroneous message when a Primary CMD command is entered in a special
   edit tab (CLIP, SetEdit and EFTEdit).

*  Add support to the Edit line command M (Move) to allow moving whole files
   around in MEdit mode.  The M command is placed on the =FILE> line, and an
   A/B line command to mark the new position. The new position must be located
   before another =FILE> line or the **Bottom** line.

*  Add a new Profile option - MACLIB. MACLIB allows you to specify 1 or more
   alternate folders to use as the source for macros, IN PLACE OF the normal
   Users\You\Documents\SPFLite\MACROS folder. The default for MACLIB is NONE.

   The list of folders is NOT specified directly by the MACLIB operand. The
   MACLIB value is the name of a SET symbol containing the list. This makes it
   easier to Enter/Edit the list in SetEdit rather than entering a long string
   as a MACLIB operand.

   e.g.
   Enter the command "MACLIB MyMacs" sets the profile value to MyMacs.

   Enter SET to reach (SetEdit) mode and create a line
   MACLIB.MyMacs=C:\MyStuff\MyMacros\|C:\Users\Me\Documents\SPFLite\MACROS\

   Notes: The example adds the normal MACROS folder after the new user folder,
          but there is no requirement to do so. You may enter any set of
          folders you desire.

          Also, multiple filenames are separated using the | character.

          The effective MACLIB list (specified or NONE) is automatically added
          to the thinBasic #INCLUDE search list.


Between 3.0.23253 AND 3.0.23259 (Sep 16/2023)
=============================================

*  Correct the NFIND logic. It was accepting a TOP operand, but never actually
   acted on it.

*  Correct handling EFT override profile handling. The override were supposed
   to be temporary, but were actually being saved to the profile if it was
   unlocked.

*  Correct a serious error in MEdit which caused incorrect saving of the MEdit
   session files.


Between 3.0.23169 AND 3.0.23253 (Sep 10/2023)
=============================================

*  There are new Profile options:
     AUTONAME - Defaulted to NONE, if not NONE it specifies the name of a
                different AUTO file to be used for text colorization. (Rather
                then the normal Profile Name)

     MODE     - Defaulted to EDIT. Can be used to specify the type of tab to
                be opened when a simple SELECT or LMB click is done on a file
                in File Manager. Choices are EDIT, VIEW and BROWSE.

*  Correct handling FM Line command repeat values that exceeds the size of the
   current list

*  Correct the handling of a MODE xxxx and AUTONAME xxxx Profile overrides in the
   EFT list.

*  Correct File Manager error in not saving the STANDARD / ALTERNATE format
   setting for each of the display types. (FilePath, Recent, Favorites, etc.)

*  Correct CFGMaint. It was not always actually saving the corrected value for
   error entries when doing an IMPORT.

*  Correct handling of MEdit session re-open at startup to maintain the MEdit
   file order.

*  Correct EFT validation. Blank lines were not being skipped as they should have
   been.

*  Corrections to handling some FM Line commands, and to issuing FM Line commands
   in macros.

*  Correct allocation of UNDO files for MEdit sessions.

*  Prevent internal updating of the EFT table if an actual (EFTEdit) session is
   running.

*  LOCATE with 'color' operands has been corrected to handle excluded lines
   properly.

*  LOCATE with LONG operand also received a correction in the command parser.

*  Corrections to handling some FM Line commands, and to issuing FM Line
   commands in macros.

*  The FM DEFAULT command has been eliminated.

*  Correct BACKUP handling of files which have no extension.

*  INSTANCE support has been extended to allow the EFT (Extended File Type)
   table to be maintained uniquely by Instance ID.

*  An extensive internal revision was done to 'tidy up' the handling of Tab
   Creation/Deletion and inter-tab communication. The handling of file Profiles
   was also simplified.

*  The EFT (Extended File Type) support is being extended, and will take over
   handling other file type related choices.
     ** File types which should share the DEFAULT profile
     ** File types which should be treated as non-text files
     ** File types which should be Opened by the Windows default app for
        that file type
   This means the DEFAULT extension list specified in Options => General will
   be removed, as well as the no-text list in Options => FM.

   These former lists will be automatically converted to the equivalent EFT
   table entries, you do NOT need to perform any conversion.

   Please review these extensions in the Help file.


Between 3.0.23088 AND 3.0.23169 (Jun 18/2023)
=============================================

*  Correct the SET command. It was not handling an empty SET table properly.

*  Correct the (Paste) KB primitive, It was not handling a Paste into the
   command line properly.

*  Correct colorization scan, it was not handling the AUTOCASE of a single
   delimiter character properly.

*  The macro function Get_Profile$ has been re-written to properly perform what
   the HELP file indicates. As well the BNDS, MASK, MARK and TABS line data can
   be retrieved either with the functions Get_xxxxLINE$ or with
   Get_Profile$("xxxxLINE").

*  When loading a file using an XMACRO, the routine that validates the SOURCE
   attribute will be skipped, to avoid issuing extraneous messages.

*  Correct error in saving Hilite entries in the STATE file. The length of
   color fields was incorrect if within 1 character of the line length.

*  Macro Get_Profile$ will now, for EMACRO, IMACRO and XFORM return the ON / OFF
   value as the last operand in the string.

*  Correct handling of the Dialog for missing Profiles. If SKIP or SKIP(W) is
   chosen the entry was being added to the wrong CFG table.

*  Remove the option for whether 2D mouse movement may be used to mark text in
   an edit session. 2D selection will always be allowed.

*  The handling of File Manager Line commands has been revised to better handle
   Repeating and Block mode commands.

*  The primary commands RECFM, EOL, and LRECL control how your data files are
   processed during reading and writing. There are a variety of combinations of
   these parameters which are illogical. Validation in the individual commands
   has not prevented the creation of these illogical combinations.

   So, these individual commands are internally becoming 'pass-through'
   commands, meaning they no longer perform the validation and actual change to
   the Profile settings. The command is restructured and passed to a new DCB
   command, which will 'do all the work'.  The new command can, of course, be
   used directly and is the recommended approach. For most users, using the old
   commands is probably still more familiar and will continue to operate.

   The format of the new command is:
      DCB [ RECFM operand ] [ LRECL operand ] [ EOL operand ]
      ie. A standard TXT file would be spacified as DCB RECFM U LRECL 0 EOL CRLF
   The operands following the keywords RECFM, LRECL and EOL are identical to
   the operands of the former commands.

   This allows for proper validation of the parameters and will prevent the
   accidental creation of illogical sets of parameters.


Between 2.7.23056 AND 3.0.23088 (Mar 29/2023)
=============================================

*  Correct (PA2) primitive KB function. It was not performing the flip/flop
   between old and new screen images when pressed repeatedly.

*  Alter the (DataDelete) and (DataBackspace) primitive characteristics to
   allow their use in the FM tab on the Command Line. Correct (DataBackspace)
   operation on the command line.

*  Re-establish the alternate form of the Line Command modifiers / and \ as
   described in the Help for Extended Line Command Modifiers. This uses the
   sequences of . and .. as substitutions. (Easier to use on non-English
   keyboards). This support 'disappeared' about 3-4 years ago.

*  Tweak messages for the SAVE command in a CLIP session to better indicate
   'where' the data was saved. (i.e. Named or Windows clipboard)

*  Revise the (Copy), (CUT) and (Lift) primitives so that if there is no
   'marked' area, the clipboard is left untouched.  If it IS necessary to
   actually clear the clipboard, use the (ClipClear) primitive.

*  Add support for a normal Windows ScrollBar on the right of the screen.
   This feature is optional; to activate it go to Options => Screen and
   toggle the "Add Vertical ScrollBars" option.

*  Minor correction to macro function SPF_Post_Do regarding marked text areas.

*  Minor correction to the (LowerCase) primitive. It was not checking for an
   active Marked area before proceeding.

*  Revise internal MSGBOX routine to support custom text on the dialog buttons.

*  Remove the FM Line command PURGE. The option to perform a Permanent Delete
   can now be done with the DELETE/DEL/D line command by adding a 'U' as an
   operand. e.g DEL U

*  Improve the clarity of text in the popup DELETE confirmation dialog.

*  Revise the FM line command LINES, which updated the STATE information for a
   file.  If the file currently HAS a LINES value, it will skip the overhead of
   performing a STATE rebuild. This is helpful when you want to select a large
   range of file lines where only a few are actually missing LINES data.

   When needed, a U operand can be added to request an unconditional STATE
   update regardless of whether a LINES value currently exists.   e.g.  L U


Between 2.7.23019 AND 2.7.23056 (Feb 25/2023)
=============================================

*  Reverse the change to the colorization QUOTED command default in AUTO files.
   The revised default (of 3 sets of quotes "" '' and ``) seems to be causing
   more problems in colorization than before. So the default will go back to
   being the single double-quote.

*  Add support for Alias names for the colorization schemes. This helps to
   remember what each of the schemes are used for.  These Aliases can optionally
   be used to replace hard-coded scheme numbers in the AUTO files.

*  Correct the (DataInsert),  (DataDelete) and (DataBackspace) KB functions as
   well as the CHANGE logic for handling CHANGE DataShift mode changes. A
   revision to avoid spaces within quoted strings was just not up to handling
   lines with multiple individual quoted strings.

*  Alter the display of the INS/OVR value in the status bar to better hi-light
   when the setting differs from the user's default as specified in Options =>
   Keyboard. As well, (DataInsert) mode will be indicated by the DIN designation.
   i.e. the StatusBar may now display INS, OVR or DIN.

*  Review the various KB Primitives related to INS/OVR mode. The following
   changes have been made. While there are numerous changes, most users will be
   unaffected by them.


     * The following function names have been deprecated; they will still
       function normally but should eventually be replaced by their new names.
       These functions are normally only used by multi-step KB macros.

       (SetInsert)    - Replace with (SetINS)
       (ResetInsert)  - Replace with (SetOVR)

     * Add (SetDIN)   - a new function to switch to DataInsert mode. Note the
       new designation of DIN (DataINsert) will be displayed in the StatusBar.

     * The 3 functions (SetXXX) will save the current insert mode and
       immediately switch to the requested mode (INS, OVR or DIN). The saved
       mode doesn't actually need to be used. i.e. The (SetXXX) functions may be
       used as a simple "Please switch to XXX mode".

     * The (RestoreInsert) function is unchanged and will still perform a
       restore of the saved insert mode created by the (SetXXX) functions.

     * (Insert) is also unchanged and will continue to toggle between INS and
       OVR mode. (Insert) will also continue to reset DIN mode.

     * (DataInsert) has been modified to better operate as a toggle.
       If in INS or OVR mode, (DataInsert) will save the current mode and switch
       to DIN mode.
       If already in DIN mode, it will revert to the previously saved mode when
       DIN mode was entered.

     * (ClearInsert) will revert the insert mode to the mode specified in
       Options => Keyboard for initial startup mode.

*  When the (PA1) KB primitive (cancel screen input) was implemented, we created
   a small Oops! It turns out it should have been called PA2. So PA1 is now
   deprecated (but will still work). The proper name for the function is now
   (PA2)

*  Correct DIFF error which did not allow specification of a Tab # operand if
   the tab was a 'special' tab (e.g. CLIP). Also correct missing color hilights
   by DIFF on Inserted and Deleted lines.

*  Correct line command handling to do with clearing the completed line
   commands. Some were being 'left behind'.

*  When the FM Line Command EXEC was introduced, it introduced some confusion
   with the equally named EXCLUDE primary command. (Both could be abbreviated to
   EX) So EXEC processing has been merged with the W line command (which opened
   a file using its default application.  The W line command, if it includes an
   optional operand, will now process the selected file using that operand as
   the command.

   i.e. W         against TEST.BAS will open TEST.BAS in its default App.
        W NOTEPAD against TEST.BAS will open TEST.BAS in the NOTEPAD App.

*  Additional corrections to colorization scan logic to better handle comments
   on lines which also have quoted strings.

*  Improve the DIFF command removal of comments feature to match the improved
   comment handling in colorization support.

*  Add additional new selection criteria to those commands which support string
   searches. The new operands are:
     C - Locate the string ONLY within a source Comment
     Q - Locate the string ONLY within a Quoted literal
     T - Locate the string ONLY in normal text (not a Quote, not a Comment)
     The operands can be combined to create custom searches. e.g Entering
     C T - locate the string within a comment, or in normal text, but not
           within quotes.

   These new operands are only supported if the Profile being used specifies
   a valid AUTO colorization configuration.

*  Corrections to program startup to handle running from a portable install of
   SPFLite. Some previous changes had inadvertently crippled the portable
   operation.


Between 2.7.22344 AND 2.7.23019 (Jan 19/2023)
=============================================

*  Return code 4 from Macros was removed in a previous release. This change
   removes support for a Return Code 4 from an XFORM macro's Write routine. This
   used to be used to specify that the Write was simply 'not performed'. This
   change is highly unlikely to impact any users.

*  Add a new KB primitive (TrackC) - Track Create - to establish a new Track
   point. This is mainly intended for use in KB macros that may otherwise not
   create a new track point.

*  Enhance the SET substitution support. Previously the substitution could only
   replace entire space delimited 'words' in the command line.  You may now use
   the normal concatenation symbol | to concatenate the SET text to the
   following characters. e.g. If SET ABC = DEF was defined, then =ABC|GHI would
   create DEFGHI.

*  Adjust Crash handling. A Loop Detect will only create a Crash Report when the
   option to crash is chosen. If "Continue Execution" is chosen, no report is
   written.  Also correct the filename message when the data is saved in a
   .CrashSave file.

*  Correct the handling of the English Only / Not English Only internal
   Character List. It was not being generated correctly.

*  RETRIEVE will now ensure the command line scroll offset is reset so that the
   left end of the retrieved command is in position 1.

*  Add a new FM Line Command - EXEC / EX. This command requires a single
   operand, the name of a normal system command, BAT file or program.  SPFLite
   will invoke the command and add the fully quoted filename from the selected
   FM line.  e.g. EX NOTEPAD would open the selected file in the NOTEPAD editor.

*  Refresh the Status Bar after a macro execution to pick up any changes that
   may have been created by macro processing. (BNDS, CHANGE CS/DS etc.)

*  Correct color attribute management logic in swapping Scheme numbers. It was
   inadvertently resetting other non-Scheme attributes.

*  Improve the DataShift mode of the CHANGE command, the (DataInsert) and
   (DataDelete) KB primitives to prevent spotting and altering spans of blanks
   that are within quoted strings. Previously the code could inadvertently alter
   the format of the quoted string.

*  Reinstate the checking for a new SPFLite release. It allows the choice of
   automatic checking every 7 or 30 days, or specifying a Manual Check. A Manual
   Check requires the clicking of a button on the Options => General screen to
   perform the check.

*  Add some tracking of the usage of various SPFLite functions (Primary
   Commands, Line Commands etc.) Add a new option to the CFGMaint utility to
   create a tracking data file (a normal CSV type file). These hopefully can be
   collected and reviewed to assist SPFLite Support.

*  Correct the Picture types '&' and '%' (Word and non-word) to properly use the
   WORD values from the current active Profile.

*  Correct errors in the colorization scan to better handle comments and quoted
   strings.


Between 2.6.22194 AND 2.7.22344 (Dec 10/2022)
=============================================

*  Correct the SORT command.  It was NOT maintaining the associated STATUS of
   lines during the sort.  (USER, .Labels, :Tags AND HANDLES)

*  Alter the TF LINE command to match the current writing style guides regarding
   the number of spaces recommended after a word ending in punctuation.
   Previously TF inserted 2 spaces, it will now onlt insert one.

*  Change the RESET command to be more selective about when it triggers the
   creation of an UNDO point. Previously, *ANY* RESET command variation would
   trigger this, even IF the RESET did NOT alter ANY UNDO related data.

*  Correct the handling of a 'changed elsewhere' notification, which results in
   the file being re-loaded, so that the cursor IS properly activated AT the
   completion of the reload activity.

*  Correction to RESET handling pending LINE commands.

*  Correct the FIND result message FOR Hex strings in EBCDIC file to properly
   display the EBCDIC HEX of the found string, NOT the ANSI HEX value.

*  Alter the PROFILE RESET FUNCTION to RESET all Profile settings to the
   original SPFLite Profile defaults.  Formerly it was resetting values to the
   current DEFAULT Profile settings, which may (and probably have) been altered
   since the original SPFLite startup values were established.

*  ADD new support FOR 'Extended File Types'.  This support provides a more
   flexible METHOD of assigning a particular file to a PROFILE than the current
   simple "use the file extension".  Full details are in the Help file under
   "Working with Extended File Types".  Note this addition removes the old
   PROFILE USING support.  Any existing USING usage will be automatically
   converted to EFT as part of the first execution of this release.

*  Correct the handling of PRESERVE C. Truncation following a / character should
   ONLY be performed if all following characters are blank. (It wasn't)

*  Correct handling of RFIND for the 'D' - Delimiter and 'R' - Regex search
   strings.  The resume search location was not being set correctly.

*  Enhance the MACRO TRACE output so that the functions which return an actual
   data result (not just a RC) will display the actual result.  For string
   results, only a MAX of 32 characters will be displayed.

*  Alter RELOAD to remove an unneeded internal RESET ALL before the actual
   reload.

*  Alter the macros HALT and Set_MSG to restrict the allowable RETURN CODE
   values to 0 and 8 (OK and FAIL).  The formerly allowable RC of WARN (4) IS no
   longer available.

*  The DROP and KEEP commands have been removed.

*  ADD new option to the Options -> Screen to allow specification of a 'scale'
   factor for the sizeE of the font used for the Status Bar and Tab Titles.  The
   default is set to 1.0, smaller values (like 0.9) will reduce the font, larger
   values (like 1.2) will increase the font size.  As well, alter the Status Bar
   allocations to better calculate the different box sizes.

*  Assign some new default color values to the USER Schemes so that a new
   installation will at least have a variety of colors for those experimenting
   with colorize support.  Previously, these colors were all the same, giving
   the appearance that colorize was simply not working.  The colors may not be
   suitable, but that is easily corrected with an Options -> Scheme session.

*  Correct MACRO function Get_Profile$. The "NAME" option had accidentally been
   crippled. This was corrected and the new field "LOCK" added. The LOCK STATUS
   was previously combined with the NAME data, they have now been separated.

*  Extend the BACKUP command to allow it to backup the CLIP, SET and EFT sessions.
   The backups will be stored in a standard $BACKUP folder, located within the
   HomeData folder (normally \Users\you\Documents\

*  "Tidy uo" the message text for many of the PROFILE commands and displays to
   be more consistent in format.

*  Correct the LINE commands M/MM, C/CC and R/RR to properly handle xNOTE lines.
   The lines were being copied and converted to standard NOTE lines.

*  Correct the FM SELECT line command to properly handle LNK (shortcut) files
   that reference filetypes marked in FM AS Windows executable type.

*  Correct the LOCATE command. It was not rejecting line numbers bigger than
   the file size.

*  Tighten up the command parsing code in checking quoted operands.

*  Correct handling of RETRIEVE following a Command line error.

*  Update the PROF NEW xxxxx command so that when a new Profile is created, you
   will immediately be placed into the Profile Edit Dialog to customize the new
   profile as needed before actually using it for the first time.

*  Allow CLIP, DIFF, SetEdit and EFTEdit to use unique Profile entries.  If a
   Profile exists, these special Edit sessions will use them, otherwise the
   previous DEFAULT Profile will be used.  The special Profile names are (of
   course) CLIP, DIFF, SETEDit and EFTEdit.

*  Correct crash error if switching to HEX mode in a Multi-Edit session.

*  Alter the macros Get_Find_xxxx and Get_Loc_xxx functions to return
   Line/Column/Length values that are compatible with the Get_Csr-xxxx
   functions.

*  Correct DIFF code to properly perform deblocking of data from the clipboard
   when low value line control characters are present.

*  Correct command keyword lookup to properly exempt ALL the different types of
   quoted strings. (C type, T type etc.)

*  Correct generalized search routine handling of multiple optional search
   criteria.

*  Correct cursor positioning logic to properly handle multiple requests when
   processing stacked Primary commands.

*  Correct error in saving New sessions.

*  Rename the designation of new Tabs to (New) rather than (Empty) to better reflect
   how the tab was created.


Between 2.6.22138 and 2.6.22194 (Jul 13/2022)
=============================================

*  Correct the (RestoreInsert) primitive to re-DISPLAY the NEW INS STATUS in the
   StatusBar.

*  Corrections to the (SWAP) primitive, to FIX random crashes.

*  Correct handling of the MAX operand of the ALIGN command.

*  ADD NEW FM primary COMMAND CSV [ALIGN]. This will CREATE a standard CSV
   (Comma Separated Value) file of the current FM displayed filelist. The ALIGN
   operand will trigger formatting WITH the COLUMN widths SET to the longest
   value.

*  STOP adding an LRDATE COLUMN to ALL Recent/PATH FM displays. Can't even
   remember a reason why this was ever done in the first place.

*  Correct handling of attribute characteristics when inserting TEXT WITH
   (DataInsert) MODE set.

*  Revise KEYMAP DIALOG to correct various TEXT formatting problems AND improve
   the Hints information.

*  Allow the (Record) KB primitive to accept a private CLIPBOARD NAME to receive
   the saved recording. e.g. you may now CODE (Record/MyCBName)

*  Introduce the (CmdPad) KB primitive. This FUNCTION will LOAD the CMDPAD.CLIP
   file AND INSERT the commands into the KB processing stream the same way a DO
   file IS processed. FULL details ON the NEW CMDPAD facility can be found in
   the HELP file under "Working with" => COMMAND Pad.

*  ADD a NEW startup COMMAND LINE option. The OPTION -SCRSIZE may now be used to
   request the SPFLite screen be opened WITH a specific SIZE rather than the
   values FROM the PREVIOUS termination. You may specify -SCRSIZE FULL, OR
   -SCRSIZE hhXww, where hh IS the screen height, AND ww IS the screen width.
   e.g.  -SCRSIZE 43x100 FOR 43 lines by 100 columns.


Between 2.5.22066 AND 2.6.22138 (May 18/2022)
=============================================

*  Changes to CREATE/REPLACE/SAVEAS
   >> IF no LINE-RANGE-operands are specified, a DEFAULT of ALL lines will
      be assumed.

   >> CREATE, IF it detects an existing filename, will, along WITH the ERROR
      message, REPLACE the COMMAND LINE WITH the fully substituted complete
      pathname TO allow simple re-entry / retry of the command.

   >> CREATE will now ACCEPT a keyword of REP/REPLACE (which effectively turns
      it into a REPLACE COMMAND). Useful FOR the circumstances of the PREVIOUS
      point.

   >> CREATE / REPLACE, IF entered ON a 'special' tab which has no associated
      PATH (like CLIP) will always pop-up an OPENFILE DIALOG TO allow FOR the
      specification of the pathname.

      FOR normal tabs, the PATH of the file displayed IN the TAB will be used IF
      the NAME IS NOT fully qualified.

*  FOR the primary file manipulation commands (BROWSE, EDIT, VIEW, SAVEAS,
   CLONE, CREATE AND REPLACE), the filename operand may now use the system
   Environment variables (like %USERPROFILE%) AND they will be replaced WITH
   their associated value.

*  Correct the handling of START LABEL processing.  It was missing a flag
   setting which caused inconsistent results IN positioning top-of-screen AT
   file LOAD startup.

*  Correct the handling of -STD COLOR operand IN FIND/CHANGE searches. Basically,
   -STD was being ignored.

*  Correct errors IN the handling of Attribute characteristics (COLOR) LINES by
   PASTE.  The extension of short LINES was NOT being done correctly.

*  Alter the LOCK ACCESS TO the HnDIndex file so that simultaneous instances of
   SPFLite starting up are NOT prevented FROM accessing the file.

*  Remove the ancient kludge of USING 999999 AS a repeat value FOR
   LINE commands OR a .9999999 FOR primary commands when what IS wanted
   IS 'the last line'.  For primary commands use .ZL (last) and for
   LINE commands use / (here TO last LINE) OR \

*  Correct handling of RESET [COMMAND].  Processing was NOT correctly
   distinguishing USER issued RESET commands FROM internally issued RESET
   commands.  Also ensure the WORD, HIDE AND SOURCE operands are properly
   exempted FROM ALL processing.

*  When a MACRO returns WITH a WARN OR FAIL RETURN CODE, the COMMAND LINE will
   be restored TO the ORIGINAL COMMAND invoking the MACRO, rather than the last
   Primary COMMAND (which may have been issued internally by the MACRO itself.

*  Alter the interaction between functions which SET the Top-Of-Screen position
   AND those which SET the Cursor Location (which can also reposition the
   Top-Of-Screen) TO better adapt TO the actual current screen positioning.

*  ADD DATE AND TIME TO the NAME of the CrashSave files created when an SPFLite
   crash occurs.

*  Alter the CFG file ACCESS routines (which use SQLite) TO ADD DOUBLE quote
   marks around internal table names.  When the file-TYPE of a file contains
   special characters (e.g.  an @) the PROFILE NAME must be quoted IN the SQL
   syntax.

*  Correct the restrictions ON making changes IN BROWSE mode.  BackSpace was
   being denied ON the COMMAND LINE, just a wee BIT too restrictive.

*  Allow the PROFILE MASK LINE TO contain SET variables.  These will be
   substituted AS the MASK LINE IS being inserted.

*  Introduce a NEW 'Tracking' facility.  This is designed to proide a simpler
   way TO RETURN TO a PREVIOUS working location IN a file after 'jumping' to a
   different location TO review CODE, OR COPY CODE snippets.  See the NEW
   "Tracking" section IN the Help "Working with ..." topic.

*  Correct the PROFILE Edit DIALOG CODE, it was simply failing TO PROCESS the
   NEW EMACRO field.

*  Remove the QUERY COMMAND used TO DISPLAY the current STATE of various
   configuration AND PROFILE settings.  ALL the commands that alter these
   settings will now ACCEPT a ?  operand TO trigger a STATUS display.  THIS will
   standardize things, AS previously some commands, when entered without
   operands, would treat it AS a DISPLAY request, WHILE others did not.

   e.g.  formerly, TO DISPLAY STATE STATUS, the COMMAND would be QUERY STATE,
   now it will be STATE ?

   IN conjunction WITH THIS, those commands which simply turn conditions ON OR
   OFF, will now treat a COMMAND WITH no operands AS a 'toggle' request.

   e.g. HEX will now TOGGLE the HEX ON / HEX OFF status.

   One last part of THIS, the QUERY KB FUNCTION, which searched FOR AND
   displayed which KB mapping used a specified primitive, has been moved TO
   the KEYMAP COMMAND, which IS probably more appropriate.

   e.g.  the former "QUERY KB insert" COMMAND would now be "KEYMAP QUERY insert"
   (OR KEY Q INSERT) USING abbreviations.  THIS IS probably a minimal disruption
   ITEM AS THIS feature IS rarely used.

*  Enhance the SET ALIAS.cmdname support TO HANDLE substitution / insertion of
   the COMMAND LINE operands via variables.  The variable names =0 thru =9 will
   now be substituted WITH the relative operand number FROM the COMMAND line.
      e.g. SET ALIAS.MyCmd = CHANGE =2 =1 ALL
   would CREATE a MyCmd which performs a CHANGE ALL WITH the operands reversed.

*  Revise the Routine FOR handling a missing Profile.  IF the COMMAND triggering
   the action was initiated by a MACRO, THEN the pop-up DIALOG will be
   suppressed.  A NEW PROFILE will automatically be created FOR the file-TYPE,
   containing the actual running values (NOT a COPY of the stored running
   PROFILE).

*  Revise the format of the filename used IN the CrashSave routine so that it
   retains the original filetype.  THIS will prevent multiple filetype recovery
   files ALL having the .CrashSave filetype.

*  Improve SPEED of a DELETE ALL request.

*  Remove support FOR the old enhanced LINE RANGE feature.  THIS allowed use of
   LINE RANGE requests like (.<=123 OR .>=567) OR (.>ABC AND .<DEF).  THIS
   feature was rarely used AND was created FOR additional flexibility before the
   introduction of FULL MACRO support.

*  When prompting FOR a FULL PATH/Filename FOR a file, the DIALOG will be
   populated WITH whatever PARTS of the FULL PATH/fileame that are known.

*  Correct the NFIND search routine. It was NOT handling the D TYPE literal search type.
   (i.e. the delimited search version)

*  Enhance the CUT COMMAND TO support STRING search conditions (like FIND supports) TO
   the LINE SELECTION abilities.


Between 2.5.21346 AND 2.5.22066 (Mar 07/2022)
=============================================

*  Alter the CHECK FOR embedded NULL (X'00') characters in a file so that is is
   performed after UNICODE conversion TO avoid false warnings.

*  Correct DIFF COMMAND handling of TAB number operands when there are some
   ineligible tabs (like CLIP sessions) open.

*  Correct CASE handling FOR AUTOCAPS AND AUTOCASE during colorization.  They
   were broken by a bug FIX IN the PREVIOUS release.

*  Correct MACRO FUNCTION SPF_INVCHARS TO honor the Invalid character choice of
   "N" FOR no replacement.

*  Correct handling of the SET PENDING.macname=Y support, which allows a MACRO
   TO continue executing even when there IS a "Pendling Line Command" state.

*  Correct handling of a LINE RANGE WITH the SPLIT command.

*  Correct PROF DISPLAY immediately after file load.  It was NOT properly
   removing ANY prior PROF DISPLAY lines.

*  When warning errors are detected IN an AUTO (Colorize) file, the NAME of the
   EXACT colorize file will be included IN the message.  THIS will remove
   confusion when the file PROFILE invokes the USING option.

*  Improve the STATUS BAR DISPLAY which shows the PROFILE IN use TO identify
   when a USING(profname) IS IN effect.

*  NORMALIZE (SORT, remove Dups) the list of file extensions IN the Options =>
   FM TAB DISPLAY TO ease editing the list.

*  Alter logic FOR how/when commands are saved IN the RETRIEVE stack.  It was
   NOT handling PFK initiated RFIND/RLOCFIND triggers of COMMAND LINE FIND /
   CHANGE commands properly.

*  ADD additional validation TO internal pointers IN the TAB removal process.

*  Adjust LOCATE message generation TO prevent multiple messages being issued
   FOR what IS a SINGLE error.

*  Correct handling of an empty =WORD> STRING TO properly RESET the WORD value
   TO its default.

*  Correct colorizing of the STATUS LINE MODE BOX, it was NOT oroperly
   highlighting certain modes (BROWSE, VIEW, etc.)


Between 2.5.21285 AND 2.5.21346 (Dec 12/2021)
=============================================

*  Correct the CHANGE COMMAND handling of +COLOR operands, it was setting the
   COLOR attribute BITS incorrectly.

*  ADD MAX TO the COMMAND operand hilighting FOR ALIGN, it was missing.

*  ALIGN COMMAND was NOT setting the Modified status. Corrected.

*  Repair the handling of the MACRO functions Get_Find_LPtr, Get_Find_Col AND
   Get_Find_Len which were 'broken' by the fix in 2.5.21285 for the ZFIND and
   ZLOC variables.

*  Relax the validation ON Tag operands TO allow more than just alphanumeric
   characters.

*  Alter the last three valid NOTE LINE types (WNOTE, XNOTE AND YNOTE) so that
   they are purely temporary.  i.e. They will NOT be saved AND restored by
   normal STATE processing.

*  Alter the handling of ERROR messages generated during file LOAD FROM normal
   message LINE style, TO insertion AS WNOTE LINES AT the top of the initial
   screen displey.

*  Correct ERROR IN the screen DISPLAY logic when a DATA LINE IS exactly 1 BYTE
   shorter than the screen WIDTH available.

*  Correct handling of PREFIX AND SUFFIX IN the negative search routine.  The
   boundary condition testing FOR the PREFIX/suffix was NOT thorough enough.

*  ADD a NEW ITEM TO Options => FM. THIS OPTION will allow you TO specify
   whether FM will use the standard MS Explorer STYLE logical sorting, OR
   whether you prefer the simple ANSI sorting used IN older SPFLite versions.

*  Correct PRINT handling.  When NOT printing IN COLOR, it was USING the TextHi
   COLOR, which MAY NOT be dark depending ON the USER's color choices.  It will
   now use BLACK when NOT printing IN color.

*  ADD a COLOR EXPORT / IMPORT ability TO the CFGMaint utility. THIS will allow
   COLOR 'themes' to be copied between Instances within the CFG file, or shared
   WITH other users IN the forum.  e.g. there might be old 'green screen' themes,
   'blue / white' themes, etc.

*  Correct cursor positioning after an EraseEOL IN the COMMAND LINE when the
   COMMAND length exceeds the screen width.

*  Remove the HnDIndex.txt file (which provides enhanced HELP search ability)
   FROM the EXE LOAD module itself, AND install it AS a separate file along WITH
   the MAIN SPFLite.CHM file.

*  Improvements TO colorization support:
    NOTE: These changes may trigger ERROR messages FOR some current AUTO files
          which may need correction manually.

    ** A NEW TYPE of WORD directive has been added - AUTOCASE.  THIS NEW OPTION
       will cause the WORD TO be displayed IN the EXACT CASE of the TEXT IN the
       AUTOCASE statement.  e.g.  "AUTOCASE 5 OkCancel" would DISPLAY the TEXT
       OKCANCEL AS OkCancel.

    ** A CHECK FOR duplicate WORD / AUTOCAPS / AUTOCASE words will now be
       performed.

    ** The QUOTED directive may now optionally specify the delimiters TO be used
       TO identify quoted strings.  IF no OPTIONAL parameters are entered it
       will operate AS previously WITH SINGLE, DOUBLE AND back quotes AS the
       delimiters. Delimiters are entered AS pairs (leading AND trailing) which
       DO NOT need TO be the same character.

       e.g. The current QUOTED 5 STATEMENT IS treated AS QUOTED 5 "" '' ``
            An example WITH different delimiters mmight be QUOTED 5 <> IF the
            < AND > were the quoted STRING delimiters.


Between 2.5.21238 AND 2.5.21285 (Oct 12/2021)
=============================================

*  Correct handling of the Custom Colors OPTION of the COLOR SELECTION tool, it
   was NOT properly saving the custom colors IN the CFG file.  AS well, clarify
   the instructions IN the Help file FOR how TO SAVE the colors.

*  Correct the DISPLAY of Scheme 14 IN the Options => Schemes dialog.  It was
   NOT being displayed IN the correct colors OR font.

*  ADD refresh of the NEW BG2 DISPLAY IN the Options => Screen/Scheme tabs when
   a NEW COLOR IS selected.  THIS refresh was missing FROM the NEW BG2 DISPLAY
   support.

*  Correct handling of colorize AUTOCAPS, the PREVIOUS release had accidentally
   crippled it.

*  Correct the routine which tracks the length of the current maximum length
   LINE, it was NOT properly examining ALL DATA lines.  An incorrect maximum
   length value can affect other SPFLite functions which depend ON it.  e.g SORT

*  Adjust spacing of the KEYMAP DIALOG elements. No functional changes were made.

*  Correct removal of the Invert attribute (used by the FIND COMMAND).  It was
   NOT properly handling the length of the reset.

*  Alter the NEW Release procedure TO ensure Compiler Debugging support IS NOT
   included IN the production version AS it can visibly reduce performance.

*  IF STATE LOAD detects a LINE COUNT mis-match, but there IS no other STATE
   DATA other THEN the PREVIOUS top-of-screen position, it will still SET the
   position IF possible. (Assuming the PROFILE has START PRIOR SET)

*  Correct the RUN command.  It was NOT sending the whole file FOR processing IF
   the DISPLAY was NOT sitting AT the top-of-file line.

*  Revised search routine FOR handling colorize kwyword search.

*  Repair the LOCATE FIND AND LOCATE CHANGE commands.  They were 'broken' a few
   versions ago by changes TO the handling of FIND hilighting.

*  Repair .ZFIND AND .ZLOC support, another area 'broken' by other changes and
   upgrades.

*  Repair the handling of the CAPS:Auto setting.  Another casualty of prior
   changes TO improve the loading TIME of large files.

*  Repair the checking of record lengths when RECFM = L IS specified.  Same
   cause AS the PREVIOUS item.

*  ADD a warning message IF the file being loaded contains ANY embedded NULL
   (X'00') characters.  NULLS can cause other application programs to truncate
   LINES prematurely depending ON how carefully their INPUT handling was
   written.

*  Corrections TO the saved top-of-screen position IN the STATE file.  It was
   NOT being properly SET during END processing, AND was also NOT adjusting FOR
   ANY PROF LINES currently being displayed.

*  Prevent duplicate entries FROM being created IN the 'Non-Text Files' list.

*  ADD checking when an edit IS cancelled due TO a missing PROFILE, so that an
   attempt TO SWITCH TO the now cancelled TAB IS NOT made.

*  ADD 3 NEW MACRO functions:
      Get_LeftScrn_Col      retrieves the leftmost VISIBLE screen COLUMN
      Get_RightScrn_Col     retrieves the rightmost VISIBLE screen COLUMN
      Get_BottomScrn_LPtr   retrieves the LPtr of the last displayed DATA LINE ON the screen.


Between 2.5.21186 AND 2.5.21238 (Aug 26/2021)
=============================================

*  Correct SAVEAS command. It was NOT always checking IF the NEW filename
   was an existing file before proceeding.

*  Correct ERROR IN performing CASE-conformant TEXT changes.  A LINE of
   debugging CODE had been accidentally LEFT IN, messing up the logic.

*  Enhance HELP TO better support the addition of the Macros Help DATA into the
   MAIN Help file.

*  CREATE a NEW SET option.  IF an entry SET PENDING.xxx = Y IS created, it will
   allow a MACRO named xxx TO be processed even when there are pending LINE
   commands outstanding.  Normally macros are NOT allowed TO run WITH
   outstanding LINE commands.

*  Correct ERROR IN COMMAND validation.  A PREVIOUS logic change was made that
   ended up preventing RESET, CANCEL AND UNDO FROM being allowed TO run IF there
   were pending LINE commands.  THIS has been corrected.

*  Change MACRO FUNCTION SPF_SHELL so that requests WITH SYNCH specified are
   issued WITH the CMD OPTION /C TO ensure the CMD WINDOW IS closed when the
   COMMAND finishes AND RETURN IS made TO the macro.

*  Correct handling of PFK issued commands AND how they interact WITH a Pending
   LINE COMMAND state.

*  Revise STATE handling internals TO relax the stringent re-loading rules.

   IF you use STATE, ALL your existing STATE files remain perfectly usable, no
   action ON your part IS required.

   HOWEVER -- ONCE you have moved TO THIS release, STATE files created by THIS
   NEW version will NOT be usable IF you revert TO an earlier version.

*  Prevent File Manager LINE COMMAND LINES FROM generating STATE loading ERROR
   messages since it will be replacing the STATE information anyway.

*  Correct ERROR IN setting the cursor position WITH a LEFT-MOUSE-click.
   Depending ON the COLUMN, it could falsely indicate that a TEXT area was being
   selected.

*  Improve message DISPLAY ON LINE 2 of the screen.  The DISPLAY will now be
   sensitive TO whether it IS an ERROR message, OR simply an informational
   message.  IF you desire, you may now SELECT 2 background colors FOR the
   Messages / ERROR setting ON the Options => Screen dialog.  The BG1 value will
   be used FOR informationsl messages, AND the BG2 value FOR ERROR messages.
   THIS enables you TO make ERROR messages more highly visible.

*  Correct logic FLOW IN an initial SPFLite installation TO prevent a crash
   caused by an incorrect sequence of module calls.

*  Correct RELOAD logic.  2.5.21186 changes TO RELOAD incorrectly triggered a
   RESET of the Retrieve stack.


Between 2.5.21174 AND 2.5.21186 (Jul 5/2021)
=============================================

*  Correct the NEW OPTION TO OPEN Help files IN FULL Screen instead of
   windowed.  One condition was overlooked AND NOT honoring the setting.

*  Alter the Title CASE logic so that words like (isn't, don't, I've etc)
   don't end up as (Isn'T, Don'T, I'Ve etc.).

*  Adjust the File Manager LOCATE COMMAND TO use the NEW Windows Explorer
   collating sequence.  It was still USING the old sequence, which basically
   prevents it FROM working properly.

*  Correct the Get_Find_Len MACRO function.  It was returning the length of the
   COMMAND LINE search operand rather than the length of the actual found
   STRING, which can occur WITH Picture AND Regex searches.

*  REPLACE the RETRIEVE/RETF logic WITH a re-write.  The PREVIOUS version was
   NOT working reliably AND would sometimes fail TO SAVE NEW commands TO the
   retrieve stack.

*  OPTIMIZE the File Manager directory read PROCESS TO remove the duplicate
   filename checking when processing ONLY a SINGLE file path.  FOR very large
   folders, the un-needed processing was causing severe slowdowns.

*  Correct handling of File Profiles when performing SAVEAS, CREATE AND REPLACE
   commands TO ensure the file being written IS USING it's correct Profile.
   Previously they were written USING the loaded file's Profile. This could
   trigger some formatting errors AND STATE hashing errors when certain PROFILE
   variables were different between the two Profiles.  Such AS PRESERVE, MINLEN,
   AUTOxx AND RECFM.

*  Correct serious ERROR IN SAVEAS.  It was NOT saving the entire file IF the
   current top-of-screen LINE was NOT the first line.

*  ADD RELOAD AND END TO the list of commands allowed TO be processed when there
   are pending LINE commands.


Between 2.5.21149 AND 2.5.21174 (Jun 23/2021)
=============================================

*  Correct handling of the ALIAS forms of REPLACE (REP AND REPL).  They were NOT
   being treated properly AS REPLACE.

*  Further revisions AND enhancements TO the HELP command.  The FULL search MODE
   IS now much more flexible.  Please review the Help COMMAND section.

*  Correct test FOR an existing file IN the CREATE logic.  It was NOT checking
   unqualified file names properly.

*  Correct RFIND/RCHANGE handling, they were NOT recognizing the presence of a
   PREVIOUS literal STRING IF it was a null string.

*  REPLACE the FM SORT logic WITH a standard Windows Explorer STYLE ordering.
   THIS ordering treats embedded numerical strings AS logical numbers regardless
   of the lengths of the string.  E.G examine the following list TO see the
   effect.

   2string
   3string
   20string
   st2ring
   st3ring
   st20ring
   string2
   string3
   string20

*  Alter the ACTION SAVE processing so that the COUNT PROCESS IS ignored IF the
   file IS IN un-modified status.  ONCE a modification occurs, the ACTION COUNT
   will continue AND eventually the SAVE will be done.  Of course the SAVE will
   CLEAR the modified STATE, AND the PROCESS starts over.


Between 2.4.21112 AND 2.5.21149 (May 29/2021)
=============================================

*  Major internal revision TO the way Primary commands are parsed, AND the
   various search/change criteria are managed.  Previously, many of the Primary
   commands, which did NOT actually use the search / change criteria, would
   however still cause these criteria TO be reset.  THIS caused subsequent
   attempts TO perform RFIND / RCHANGE commands TO fail WITH "No previous Find /
   Change criteria".  This should now work as expected.

*  Correct handling of the CUT NEW OPTION TO prevent false prompts when closing
   a CLIP session FOR a named clipboard.

*  Alter handling of the START FIRST/LAST OPTION so that these will OVERRIDE the
   screen positioning done by normal STATE repositioning.  IF the STATE location
   IS preferred THEN START PRIOR should be used.

*  Correct handling of the FM FIND-IN-Files search exemption list.  IF the entry
   was marked WITH the (W) OPTION TO indicate the file should be normally opened
   by the associated Windows application, the file exemption search would fail.

*  Correct handling of the UNDO checkpoint files.  Certain commands (like CREATE
   OR RENAME) can cause the active PROFILE TO change.  IF there was a difference
   IN the SETUNDO value between the old AND NEW profiles, the UNDO file table
   could be corupted.  These commands should heve performed re-allocation of the
   files, AND weren't doing so.  This has been corrected.

*  Correct handling of the PAGE MARGIN values IN PRINT SETUP.  They were NOT
   being saved AND restored correctly AND were always treated AS 0 (zero).

*  Revise HELP COMMAND processing TO provide a more thorough AND consistent
   search FOR Help Topics.  HELP will now HANDLE multiple search terms TO assist
   IN locating suitable topics.

*  Alter the File Manager STATUS BAR TO DISPLAY a message WITH the LINE COUNT
   AND position of the current display.  Format IS: LINE x:y of z
   e.g. LINE 4:28 of 64
   Along WITH THIS, the LOCATE COMMAND will now ACCEPT a simle numeric operand
   AS a request TO position TO that line.

*  Correct ERROR IN handling the PROFILE WORD setting.  The edit of the LINE was
   NOT properly displaying the LINE's contents as it was typed.

*  ADD a NEW KB primitive (Refresh) which may be used IN File Manager TO force
   a refresh of the DISPLAY contents.  THIS may be needed AT times TO pick up
   changes (deletes etc.) made by external means.

*  Correct ERROR IN the Edit LINE move COMMAND (M/MM).  ANY labels IN the
   selected SOURCE LINE RANGE were dropped instead of being moved along WITH the
   data.

*  ADD a NEW OPTION TO the KEYMAP dialog.  There IS a NEW BUTTON, which can be
   used TO RESET a specific Key (AND modifiers) TO the DEFAULT value that
   SPFLite would have used ON a NEW installation.  Simply place the cursor IN
   the TEXT BOX FOR a specific key combination, AND press the NEW button.

*  Correct messages issued following a FIND FOR a Delimited STYLE literal.  The
   message was displaying the raw FIND operand rather THEN the found string.
   Also correct the determination of when TO DISPLAY the found STRING IN Hex
   (When it contains non-printable characters.)

*  Correct support FOR COMMAND Chaining.  It has been 'broken' for a long time,
   but never reported.


Between 2.4.21104 AND 2.4.21112 (Apr 22/2021)
=============================================

*  Revise the Crash handler so that LOOP STYLE crashes also have the OPTION TO
   SAVE the DATA IN modified tabs before allowing termination TO proceed.

*  CODE cleanup TO corect the handling of internal TRACE entries when a crash
   OR LOOP condition IS detected.

*  Correct the CFGMaint tool TO HANDLE FM Layout parameters IN the same manner```
   AS the MAIN SPFLite program.

*  Allow CLS, TOP AND BOTTOM TO be requested IN a SPF_CMD MACRO call.

*  Correct STATE creation FROM an MEdit session when exiting via END.


Between 2.4.21101 AND 2.4.21104 (Apr 14/2021)
=============================================

*  Correct a nasty bug IN the Crash TRACE logic, which would slowly FILL the
   TRACE table, eentually triggering a crash. Correct similar missing statements
   IN other functions.

*  Correction TO the STATE LOAD process.  The Top-of-screen LINE was NOT always
   being properly re-established.

*  Correction CFGMaint tool TO HANDLE spaces IN the FMLayout string.


Between 2.3.21053 AND 2.4.21101 (Apr 11/2021)
=============================================

*  Significant re-WRITE of the File Manager support.  Please review the Help
   file section "Working with - File Manager" FOR FULL details.

*  Rename the CLONE FM LINE COMMAND TO Klone (abbrev. K) TO FREE up the C LINE
   COMMAND TO make it available FOR its normal C/CC usage.  (See NEXT ITEM)

*  Allow the primary CUT COMMAND TO be used IN File Manager.  When used within
   File Manager, the C/CC LINE commands may be used TO SELECT which items are TO
   be copied TO the clipboard.  The DATA cut TO the CLIPBOARD will be the FULL
   pathname of the file enclosed IN DOUBLE quotes.  (NOT the contents of the
   file.) ALL appropriate CUT operands may be used, APPEND, NEW, RAW, AND named
   clipboards, but NOT LINE ranges, X/NX OR U/NU.

*  Alter processing of FLIST entries TO support both unquoted AND quoted
   PATH/filenames.

*  Alter the RECALL COMMAND TO allow an * TO be specified AS the FLIST name.
   THIS will be treated AS a request TO use the contents of the CLIPBOARD AS the
   FLIST contents.

*  Allow the Primary RUN COMMAND TO be used IN a CLIP Edit session.  RUN now supports
   an initial operand of a file extension (.xxx) TO provide the filetype FOR run. IF
   NOT provided FOR CLIP, a .BAT will be assumed.  The NEW operand can also be used TO
   OVERRIDE the extension when RUN IS issued IN a normal Edit session.

*  Correct MACRO FUNCTION SET_CSR. It was NOT setting the OPTIONAL high-light
   when requested.

*  Correct program COMMAND LINE parsing so that UNC format filenames are
   properly handled.

*  Prevent duplicate entries FROM being created IN the list of file-types which
   are TO use the DEFAULT Profile.

*  Correct the procedure used TO move the CFG file TO a different location. The
   HomeFolder AND HomeData entries IN the NEW CFG file were NOT being correctly
   updated ON the initial run USING the NEW location.

*  Revise startup PROCESS of handling COMMAND LINE FileName/FilePath operands TO
   avoid 'collisions' with saved File Manager paths and masks.

*  Enhance the program Crash handler.  The pop-up has been revised TO be more
   readable, AND a NEW OPTION made available which will request an attempt TO
   SAVE ALL active edit TAB DATA before completing termination. The DATA IS saved
   IN a NEW file WITH a suffix of .CrashSave.

*  ADD an additional OPTION TO the Pop-up DIALOG which appears when a NEW
   file-TYPE IS encountered, AND no current file PROFILE has been established.
   IF the file IS actually a non-TEXT file-TYPE, the NEW OPTION will skip the
   OPEN, ADD the file-TYPE TO the list of non-editable file-types, AND ADD the
   (W) operand which indicates that, IF clicked ON, the file IS TO be opened IN
   the DEFAULT Windows application FOR thet file-type.

*  Correct an ERROR IN HELP COMMAND which caused many topic searches TO fail AND
   OPEN the Help file AT the Introduction.  WHILE fixing the CODE, the COMMAND
   has been enhanced a BIT TO be more CONTEXT sensitive between File Manager
   tabs AND Edit tabs.  NEW operands of CMD/CMDS AND LINE/LINES may be specified
   TO OPEN help directly IN the relevant COMMAND summary PAGE (Primary commands
   OR LINE Commands).

*  File Manager can now HI-lite the active Quick Launch BAR SELECTION IF
   desired.  The background COLOR FOR the selected ITEM can be specified IN
   Options => Screen by the BG2 value FOR FM Quick Launch Bar.

*  The KEYMAP LIST OUTPUT will now break OUT the PFSHOW labels into a separate
   COLUMN TO provide more readability.


Between 2.3.21016 AND 2.3.21053 (Feb 22/2021)
=============================================

*  Correct logic of the Backup Retention handler.  It was failing TO
   DELETE backups which were past the expiry period.

*  Altered the TitleCase routine TO treat additional chacters AS 'word'
   delimiters.  The following characters were added IN addition TO the space
   character:  ,.:;/\

*  Treat a request TO OPEN a file, which finds the file already OPEN IN a TAB,
   AS a non-error.  A message will still be issued AND a SWITCH made TO the
   located TAB, but no warning BEEP will be made.

*  Correct loading of UTF files TO properly HANDLE embedded TAB characters.

*  Remove restriction ON the BOM UTF setting so that BOM OFF can be used
   WITH ANY of the UTF variations.

*  Correct handling of stacked commands ON the COMMAND LINE when ANY of the
   commands involve altering ANY LINES's Exclude status.

*  Correct the reverse search routine TO properly establish the RESUME SCAN
   location.

*  Revise the program startup when opening IN FULL-screen MODE TO prevent the
   DISPLAY of a non-fullscreen WINDOW during the process.

*  When the pop-up TO SELECT a PROFILE FOR a previously unseen file TYPE
   appears, the pull-down list of existing PROFILE will no longer contain the
   names of Profiles which are currently SET TO USE a different Profile.

*  IF doing a KB (Paste), the LINE inserted will also be TAB processed IF
   ImportTabs IS set.  THIS will now agree WITH how the Primary PASTE COMMAND
   HANDLES it.

*  Alter the (DataInsert) primitive TO be a TOGGLE ON/OFF rather than just
   turning DataInsert MODE ON AND USING (INSERT) TO turn it off.  N.B.  (INSERT)
   will stll perform the turn OFF AS before.

*  Correct END processing.  IF AUTOSAVE ON NOROMPT was SET, AND the file had NOT
   been modified (thus NOT needing a SAVE) THEN STATE saving was also being
   incorrectly skipped.

*  Alter the RELOAD processing so that IF an IMACRO IS specified, it will be re-invoked
   after the DATA IS reloaded.

*  Correct STATE saving routine handling when immediately prior editing commands
   used X/NX OR U/NU operands FOR LINE filtering.


Between 2.3.21016 AND 2.3.21026 (Jan 26/2021)
=============================================

*  Correct painting of FM screem when Banding IS turned on.

*  Correct BACKUP's handling of the table of $Backup folder locations.

*  ADD a NEW validation of CHANGE operands TO prevent a LOOP/CANCEL condition
   when MINLEN > 0 AND the CHANGE IS modifying Blanks TO Nulls. THIS TYPE of
   CHANGE will now be rejected.

*  Increase the FONT SIZE FOR the LEFT-hand Contents COLUMN FOR the CHM Help
   files.  Reorder ALL the topics under Working WITH SPFLite TO be IN
   alphabetical order (AND remove the "Working with ...  " FROM the beginning of
   EACH SUB-topic).


Between 2.2.20255 AND 2.3.21016 (Jan 16/2021)
=============================================

*  Correct saving of the AutoScroll value, it was saved incorrectly so ANY
   changes were effectively 'lost'.

*  Revise startup sequence ON Initial Install so that a WINDOW IS always present
   during the process.  Previously there were periods when no WINDOW was OPEN
   AND it gave the appearance that SPFLite had terminated.  IF a 2nd COPY of
   SPFLite was started during THIS period the CFG file was NOT built properly.

*  Correct handling of the EOL parameter when setting it via the PROFILE Edit
   dialog.

*  Correct ERROR IN reading INCLUDE files during SUBMIT processing.  The
   improvements IN recent releases FOR large file handling missed 1 SOURCE LINE
   ONLY used by the INCLUDE processing.

*  ADD a NEW utility program, CFGMaint, TO the installation.  THIS tool allows
   you TO EXPORT OR IMPORT the SPFLite CFG file which contains ALL your
   preferences FOR the program AND FOR ALL the various file Profiles.  A NEW
   section has been added TO the documentation "Working with the CFGMaint
   utility".  Please review this for details on ts capabilities and usage.

*  Correct top of screen positioning logic when the Maintain screen position
   after LINE Cmds OPTION IS selected.

*  The SPFLite setup program will now ADD the Installation folder TO the
   system's PATH statement.

*  File Manager will now resolve Shortcut entries (i.e.  .LNK files).  IF a
   shortcut TO a normal file, the file will be processed, IF it points AT a
   folder, the folder will be opened IN File Manager. AS the cursor moves over
   the list, the real NAME FOR LNK files will appear IN a STATUS LINE Box.

*  ADD a TOPMOST attribute TO Message Boxes. Hopefully THIS will prevent them
   opening beneath the MAIN SPFLite Window.

*  Correct an internal typo IN managing the Options keyword table.

*  Correct LOCATE PARSE ERROR FOR LINE number zero.

*  The DIFF COMMAND has been enhanced considerably.  It will now support:
     * Use of LEFT/RIGHT bounds TO restrict the RANGE of TEXT comparisons.
     * An OPTION TO remove/nullify SOURCE CODE comments FROM the comparison
       based ON the AUTO colorization file FOR the selected file types.
     * Embedded TABS can be ignored (treated AS spaces).
     * Compares can be requested TO be CASE-insensitive.
     * You can exclude LINES FROM the DIFF process. (Either X OR NX LINES)
     * Strings of multiple spaces can be reduced TO a SINGLE space before
       comparison, THIS allows comparison TO be done properly regardless of
       indentation, varying comment spacing etc.
     * Format of the saved DIFF report filenames was EXTENDED WITH additional
       fields.  THIS will provide FOR better information ON the DIFF LIST
       SELECTION panel, AND will allow multiple DIFF reports of the same two
       files TO be retained.

*  Correct the FM Config panel logic TO properly invoke EDIT of a Profile.  It
   was incorrectly following a PROFILE's USE value and displaying the USE'd
   PROFILE rather than the one selected FROM the panel

*  Cleanup inconsistency IN saving File Manager configuration parameters.

*  Prevent a LOOP IN FIND/Change logic when PROFILE MINLEN > 0 IS IN effect AND
   the Change would attempt TO shrink a totally blank line.

*  Revise PROFILE storage routines TO eliminate possibility of storing values
   IN an alternate active Profile.

*  Extend STATE processing so that STATE information IS saved when a session IS
   closed, AS LONG AS the DATA IS NOT im modified status.  Ths will now also
   perform STATE saving IN Browe AND VIEW sessions.

*  Correct AUTO colorize SCAN TO correct an ERROR IN handling comments which
   use bracketed delimiters.  Like /* */

*  ADD several NEW DEFAULT keymappings TO the initial Install version of the
   KEYMAP.  See the HELP file (Differences between SPFLite AND ISPF -> DEFAULT
   Key Definitions).  THIS change will have no effect ON existing
   installations.

*  Correct logic ERROR IN handling the SUFFIX operand of the Negative STYLE
   searck commands.  (Like NFIND, NX etc.) Suffixes were NOT being determined
   properly.

*  Alter handling of the BEEP which occurs ON ERROR conditions TO suppress the
   BEEP when issued by a COMMAND being run FROM within a macro.  IF the MACRO
   wishes a BEEP TO occur, it must EXIT via a HALT(FAIL [,message]


Between 2.2.20191 AND 2.2.20255 (Sep 11/2020)
=============================================

*  Correct STATE saving. It was incorrectly including empty INSERT LINES IN
   the STATE file data.

*  Correct CLIPBOARD read routine.  IF the CLIPBOARD was empty, a LOOP would
   occur.

*  Cosmetic changes TO the DIFF OUTPUT display.  Added file timestamps, AND
   other improvements TO the display.

*  LOCATE will now ACCEPT an operand ALIAS of "DIFF" TO equal the "U" operand.
   Useful FOR locating the NEXT DIFF mismatch lines.

*  ADD a NEW OPTION TO request an attempt be made TO keep the screen position AS
   it was AT the TIME of the Attention (Enter OR PFK).  THIS effctively means
   that screen (positioning) commands issued by LINE Commands outside the
   currently VISIBLE WINDOW will be ignored.  THIS NOT a 100% guarantee,
   depending ON the various COMMAND combinations that are possible, but will
   usually prevent the screen FROM 'moving' away from it's last position.

   See Options => General => "Maintain screen position after Line Cmds"

*  Correct MACRO FUNCTION FMGet_Folder_Class, it was simply NOT doing what the
   documentation said it was.

*  Correct handling of UTF8 files which DO NOT have a BOM file marker.  Even
   though SOURCE=UTF8 was SET, they were being treated an ANSI files.

*  Correct DIFF COMMAND when the filenames contain embedded spaces.


Between 2.2.20151 AND 2.2.20191 (Jul  9/2020)
=============================================

*  OPTIMIZE CODE which HANDLES the CLIPBOARD strings.  THIS will improve the
   performance of CUT / PASTE / DIFF when large amounts of DATA are involved.

*  Correct PROF EDIT DIALOG verification routine FOR the IMACRO AND XFORM
   values.  Clean up message formatting.

*  Correct CFG database routine which was inadvertently doing a TRIM ON a FIELD
   during processing causing a loss of leading blanks.

*  Correct (again) handling of the MARK string.

*  Alter UNDO / REDO TO report how many repeats are available IN the UNDO stack.

*  Expand INSTANCES support so that EACH INSTANCE will have it's own Recent
   Files FLIST.  e.g.  An INSTANCE named FRED would be USING "Recent
   Files.Fred.FLIST".

*  Correct Options handling of the KBD variables, they were NOT being saved
   correctly since the migration TO SPFLite2.

*  Alter DIFF processing TO use PRIVATE Clipboards WITH temporary names.  THIS
   includes:
      + Modifying the TAB headers TO identify the files which DIFF compared.
        The enhanced TAB headers help TO identify tabs when multiple DIFF
        reports are OPEN AT the same time.
      + DIFF reports will be kept IN the \SPFLite\CLIP\
        days FOR reference.
      + Alter FM OPEN DISPLAY TO DISPLAY the NEW DIFF format TAB headers rather
        than calling them ALL (CLIP).
      + ADD the USER LINE flag TO ALL non-equal matches.  THIS will allow a
        LOCATE U TO quickly move TO the NEXT difference section of the report.
      + ADD a NEW DIFF operand - LIST.  A DIFF LIST COMMAND will DISPLAY available
        reports IN the CLIP folder TO allow FOR easier retrieval FOR viewing.

*  Revise the File Watch routines TO better cope WITH the slower ACCESS times of
   NAS drives. Remove unneeded delays IN shutting down a FileWatch.

*  When a modified file has been detected by FileWatch, AND reload IS selected,
   perform the reload USING XFORM, IF XFORM performed the original load.

*  Performance improvements TO some of the CFG file support routines TO improve
   SPEED, particularly during the first execution of SPFLite.

*  ADD OPTION TO the Pop-Up FOR a missing file TYPE PROFILE TO simply CANCEL OUT
   of the file Open.

*  Allow RELOAD IN a BROWSE session.

*  Allow the File Manager FF COMMAND TO be used IN the OPEN Files list.

*  Allow SAVEAS FOR an XFORM loaded file TO use the XFORM WRITE support.

*  Correct parsing ERROR IN NUMTYPE.

*  Correct the routine which provides the "Default Folder" FOR many functions.
   It was NOT correctly picking up the current FM folder.

*  When a NEW PROFILE IS created dynamically AT file OPEN TIME, SPFLite will now
   automatically SET the SOURCE AND EOL values IN the NEW PROFILE based ON the
   characteristics of the first file loaded.

*  The PROFILE setting primary commands (AUTOBKUP, CAPS, COLS, EOL, etc.) will
   now, IN the confirmation message, indicate whether the NEW value was saved OR
   NOT, based ON the PROFILE's LOCK status.

*  Major reorg of the Macros documentation.  The details FOR ALL the various
   MACRO functions will now appear AS items IN the LEFT-hand MENU, making it
   easier TO quickly 'get to' the desired item, rather than scroll, scroll,
   scroll.


Between 2.1.20072 AND 2.2.20151 (Jun 1/2020)
============================================

*  Correct handling of STRING storage IN the CFG file.  Strings were NOT being
   converted TO UTF8 before saving, meaning ANY TEXT WITH characters > CHR$(127)
   were NOT being saved properly.

*  Correct insertion of the PROF LINES into the TEXT when triggered by a PROF
   LOAD request of a different Profile.  IF the COLS ON/OFF setting was changed
   by the NEW PROFILE an invalid LINE POINTER could be created resulting IN
   corrupted screen displays OR an outright crash.

*  ADD a NEW operand TO CUT - NEW - which will prevent saving a permanent CLIP
   file IF one of the same NAME already exists.  IF one does exist, a prompt
   will appear asking permission TO overwrite it.

*  The addition of the PROFILE BOM operand IN 2.1.20072 defaulted the setting
   FOR THIS NEW variable TO ON, even when the SOURCE was NOT UTF8.  THIS causes
   an unnecessary ERROR pop-up when editing non-UTF8 Profiles.  Additional logic
   was added TO bypass THIS annoying message.

*  Extend the MACRO Get_Gbl_xxx_Count functions TO allow the specification of a
   SUB-table number.  Formerly, ONLY the COUNT FOR ALL tables was available.

*  Correct handling of LINES WITH the MM CC AND RR LINE commands TO properly
   HANDLE embedded special LINES like TABS, BNDS etc.  Previously these LINES
   could END up without an internal attribute LINE, triggering crashes.

*  Correct screen positioning when multiple positioning commands are issued IN
   one stacked COMMAND sequence.  e.g.  TOP; L 100  The 1st COMMAND never
   actually gets physically displayed AND causes the position calculation FOR
   the subsequent COMMAND TO be wrong.

*  Remove the CASE COMMAND AS a File Manager primary command.  The OPTION was
   NOT well known, AND had limited usefulness. AS well, the CODE was faulty
   AND simply NOT worth correcting.

*  Correct LINE COMMAND handling when the specified COUNT operand caused
   excluded LINES TO be part of the COPY operation.  The number of LINES
   handled was being incorrectly calculated.

*  Correct PROFILE handling of TABS AND MARK.  The Version 2 conversion
   inadvertently saved the values within quote marks.  THIS version will 'clean
   up' that error.

*  Prevent block MODE LINE commands IN File Manager FROM incorrectly USING a
   numeric operand.

*  Increase SIZE of the File Manager MSG FROM 64 TO 128 characters.  THIS will
   aid macros which wish TO SET longer messages.

*  Correct ERROR handling FM LINE COMMAND entry IF a space IS the first KB entry
   IN the field.

*  Correct ERROR IN handling the prompt when a VIEW session IS ended, AND the
   contents have been modified.

*  Revise the routine TO determine the valid DISPLAY characters. PREVIOUS CODE
   'missed' some invalid characters.

*  ADD a NEW COMMAND DIFF TO compare TEXT files AND report the differences WITH
   marked up AND colorized TEXT TO indicate insertions, deletions etc.

*  Revise the File WRITE routine TO improve writing speed. THIS will be most
   noticeable when writing TO a Network Drive.

*  Introduce preliminary Beta support TO allow an external MACRO TO perform the
   loading AND saving of files.  Note: THIS support IS FOR Advanced users AS it
   requires the creation of macros TO DO the actual 'work'.

   AT THIS point the documentation IS incomplete AS we are still "Working
   through" the details of how all this will work.  Any questions and comments
   are welcome AND should be done via the SPFLite Forums.

   THIS support will provide FOR two different usage scenarios.

   First: it will provide a means TO ACCESS file types that SPFLite can NOT
   normally handle.  e.g.  Databases, BINARY files etc.

   Second: it would permit the DATA FROM structured TYPE files TO be reformatted
   FOR easier viewing AND browsing.  OR displaying DATA IN Dump format.

   The NEW facility IS called Transform AND introduces a NEW PROFILE OPTION -
   XFORM.  There IS a NEW "Working with" topic IN the Help file discussing THIS
   support.


Between 2.1.20019 AND 2.1.20072 (Mar 15/2020)
=============================================

*  Correct ACTION processing TO suppress doing the SAVE when the session IS a
   BROWSE OR VIEW session.

*  ADD additional validation FOR some of the critical PROFILE variables.

*  Upgrade the version of thinBasic shipped WITH SPFLite FROM 1.9.6 TO 1.10.7.
   No changes TO SPFLite itself were required TO upgrade THIS release.

*  A NEW PROFILE OPTION has been added - BOM - TO specify whether the BOM (BYTE
   Order Marker) used WITH UTF8 files should be written when saving the file.

*  Extend PowerType keyboard support TO HANDLE the PEN colour keys.

*  Correct X LINE COMMAND TO properly position cursor when the RANGE TO be
   excluded will be collapsed into a subsequent excluded LINE set.



Between 2.1.20019 AND 2.1.20072 (Mar 15/2020)
=============================================

*  Correct ACTION processing TO suppress doing the SAVE when the session IS a
   BROWSE OR VIEW session.

*  ADD additional validation FOR some of the critical PROFILE variables.

*  Upgrade the version of thinBasic shipped WITH SPFLite FROM 1.9.6 TO 1.10.7.
   No changes TO SPFLite itself were required TO upgrade THIS release.

*  A NEW PROFILE OPTION has been added - BOM - TO specify whether the BOM (BYTE
   Order Marker) used WITH UTF8 files should be written when saving the file.

*  Extend PowerType keyboard support TO HANDLE the PEN colour keys.

*  Correct X LINE COMMAND TO properly position cursor when the RANGE TO be
   excluded will be collapsed into a subsequent excluded LINE set.


Between 2.0.19350 AND 2.1.20019 (Jan 19/2020)
=============================================

*  Correct CHANGE COMMAND USING 'D' type search literals.  The CHANGE was not
   USING the correct STRING length of the located string.

*  Change the sequence of program initialization TO resolve the sporadic
   errors pointing AT the PCRE_REGEX_COMPILE routine.

*  Alter Version 2 packaging TO completely separate its install FROM the old V11
   AND prior releases.

*  REPLACE the SPFLite Debug CONSOLE WITH a NEW version.  THIS version can now
   be Cleared OR Closed via a NEW CLS COMMAND without inadvertently closing the
   MAIN SPFLite window.


Between 2.0.19344 AND 2.0.19350 (Dec 16/2019)
=============================================

*  Correct ERROR IN setting up Keyboard Mapping ON a completely NEW install.
   The DEFAULT configuration was NOT properly stored IN the SPFLite.CFG file.


Between 2.0.19339 AND 2.0.19344 (Dec 10/2019)
=============================================

*  Update SQLite INTERFACE TO support configuration filepaths which contain
   international characters.

*  Revise the procedure FOR moving the configuration file / folders TO a NEW
   location.  There was a minor chicken-AND-the-egg situation IN the old
   procedure.  No change TO the external PROCESS IS required.


Between 11.0.19192 AND 2.0.19339 (Dec 05/2019)
=============================================

*  TO reflect the significant changes internally IN THIS release, the NAME has
   been revised FROM SPFLite TO SPFLite2.

   Since the executable IS now called SPFLite2.EXE it allows both the NEW
   release AND the old TO co-exist AT the same time.  Installation of THIS
   release will NOT alter OR change ANY of the configuration DATA files of your
   old release.

*  Total revision of the way your Options AND Preferences are saved.  IF you are
   a 'normal everyday' user, you will not notice any changes to SPFLite appearance
   OR operation.  ALL your current settings will migrate automatically.

   There IS a Release 2 Migration document available FROM the Start Menu.  It
   contains more details ON migration considerations.

*  FOR advanced users, SPFLite2 introduces the ability TO customize the handling
   of Options storage, AND allows FOR creating alternate environments FOR
   SPFLite where different setting combinations can be maintained.  e.g.
   different Keyboard layouts, different COLOR schemes, different screen sizes
   AND OR fonts.  AS well, the location of the various SFLite SUB-folders
   (FILELIST, CLIP, MACROS etc.  can be moved TO a location of your choice.

   Read the "Managing SPFLite Instances and Customization" IN the Help file FOR
   FULL details ON USING THIS NEW support.

*  Enhance the Crash report TO include a TRACE of the last 25 interactions
   before the problem ocurred.

*  Correct ERROR IN handling of the RIGHT MAX command.

*  Correct crash IN EXIT processing caused by accessing TAB related DATA after
   the tabs had been closed.

*  Correct MACRO functions Reset_Gbl_Num AND Reset_Gbl_Str when clearing
   SUB-tables.  The RESET was NOT clearing ALL the entries.

*  Correct creation of STATE DATA during CREATE/REPLACE when ONLY a starting
   LINE RANGE operand IS coded.

*  Prevent KEYMAP LIST FROM displaying keys which are NOT even mappable.

*  Correct LEFT/RIGHT MAX scrolling problems.

*  ADD a NEW operand TO STATE TO allow creation / update of STATE information
   without having TO SAVE the file.  Entering STATE SAVE will perform THIS
   regardless of the current setting of STATE (ON, OFF etc.)


Between 11.0.19192 and 11.0.19196 (Jul 15/2019)
=============================================

   Bug fixes
   =========

*  Correct Set_Csr macro function to re-institute the 3rd parameter as optional
   instead of mandatory.

*  Revise the IMacro facility.  The timing of when the macro was invoked was
   a bit too early in the processing and some macro functions were processing
   data before the edit was fully initialized.

*  Correct UNDO temporary file handling. a) not all files were being removed
   when an Edit ended, and b) multi-instances of SPFLite were still performing
   'abandoned' UNDO file cleanup even though other instances were running.

*  Remove Quick Renum option.  It was simply causing more internal problems with
   other routines than it's usefulness justified.

   Enhancement / New Features
   ==========================

*  Add cleanup routine for the new temporary clipboard files (those starting
   with an underscore _ ).  Using temporary style names helps prevent the
   \CLIP folder becoming full of old 'forgotten' CLIP data.

*  Improve mouse keyboard mapping to allow it to function in the FM Line command
   area.  Previously any click in the Line Cmd area simply positioned the
   cursor, now you can insert keystrokes in the area.


Between 11.0.19187 and 11.0.19192 (Jul 11/2019)
=============================================

   Bug fixes
   =========

*  Correct Is_Line_Cmd and Is_Primary_Cmd in File Manager.

*  Correct Set_Line(0,xxx).  V11 restricted Set_Line completely in FM, when
   Set_Line(0,xxx) should still be allowed.

*  HEX ON failed totally due to incompatibility with the new PA1 key support.

*  Correct handling of the FM Line Command area. The recent change to left align
   new entries in the field was mis-handling overtype mode keying.



Between 10.2.19129 and 11.0.19187 (Jul 06/2019)
=============================================

   Bug fixes
   =========

*  Correct error in SORT when using alternate COLLATE sequence.  The keys for
   descending sorts were not being built correctly.

*  Correct error in the SAVE of MEdit files when there are zero lines left in
   the file at SAVE time.

*  Correct error in the COPY line command.  If the A destination line was placed
   on an X'd indicator line, it was not adjusted properly.

*  Correct FF (Find in File) command handling to prevent accidental enqueue of
   the filename when it should not be done.

*  Correct File Manager LINE command to prevent loss of current STATE data when
   it exixts.  LINE was re-creating STATE from scratch as if no previous version
   existed.

*  Add additional error message to File Manager ADD command when issued against
   an unsupported entry type.

*  Improve SPFLite restart into Screen Maximized mode so that a subsequent
   Restore Screen will actually return to the last non maximized location.

*  Correct line number handling when using Quick Renum mode.

*  Correct the establishment of default (Enter) and (NewLine) keys on an initial
   SPFLite install.  The Enter/Ctrl-Enter pair was not established correctly.

   Enhancement / New Features
   ==========================

*  Alter File Manager MAKELIST behaviour when creating new entries to pick up,
   where possible, the File Pattern mask and move it to the new FLIST entries.

*  Add a new File Profile option - IMACRO - to specify a macro to be run
   immediately after loading the file.  An initial macro can also be provided on
   the command line by prefixing the macro name with a @ character.  See the
   Help for details.

*  Add a new command line option, -DO to specify a DO macro to be run after
   normal initialization is complete.  The DO macro will be executed in the
   File Manager tab.

*  Add additional totals to the File Manager total line.  The total line will
   now include totals for Lines (when available), and for the Total Size of the
   files.

*  Add a W line command to File Manager to perform a "Windows Shell Open" on a
   file.  i.e.  Open it in its default application.

*  Added support for the \ and / line command modifiers to the FM Line Command
   parsing support.

*  Add a new SORT option to File Manager.  The 'Name' item now has a Name*
   setting in addition to the previous Name+ and Name- values.  The Name* is
   taken as a request to display the list items in their native unsorted
   sequence.  i.e.  in the order they were retrieved, either from the disk
   directory, or from their sequence in an FLIST file.

*  Open up Macro support to allow use in the File Manager tab.  There are a
   whole new set of Macro functions to provide the needed interfaces to the File
   Manager data.  Macros in File Manager can, of course, use all the additional
   module support provided by thinBasic.  The FILE module of thinBasic alone
   provides over 40+ file maintenance functions.  Review the SPFLite Macros
   documentation for full details.

*  Add a new general macro function - SPF_Post_Do to allow specifying a standard
   DO macro string to be executed immediately following macro execution.  This
   can be used, for example, to perform actions not otherwise allowed in a
   macro, like Opening a new edit session in another tab.

*  Replace the handling of temporary labels in Macros.  The functions of
   Request_Label$ and Release_Label$ are being replaced with Get_Handle$ and
   Drop_Handle$ in macros.  (The old names will still be supported as aliases of
   the new versions for some time).  The assigned labels will now be persistent
   and not 'disappear' at the end of macro execution.  This will enable
   companion macros to mark and pass identified lines between the individual
   macro executions.

*  Alter entering commands into a File Manager line field to start commands in
   position one when starting a new command.  This now operates the same way
   line commands are handled in an Edit tab.

*  Added a new KB primitive (PA1) to simmulate what the PA1 key did on the old
   3270 terminals - allow you to 'throw away' your typing since the last screen
   refresh.  Typically you would do this after discovering you had been typing
   away, but NOT where you thought the cursor was and you'd overtyped a bunch of
   good data.  As long as you hit PA1 before any of the normal Attention keys
   (Enter, PFn, PgUp, PgDn, etc.) the screen will be refreshed back to it's last
   display.  Repeated PA1 keys with no other intervening keys will 'toggle' the
   display between the two versions.

*  Revise the File Manager screen history support.  It will now function more
   like a Browser history.  There are two new KB primitives which are available,
   (FMBack) and (FMFwd) which request moving back and forth in the FM screen
   history.  This will alleviate having to re-enter criteria repeatedly when
   moving between the various FM screen display moded.


Between 10.2.19107 and 10.2.19129 (May 10/2019)
=============================================

*  Correct RCHANGE using Mapping Strings.  The mapping string was corrupted on
   2nd and subsequent RCHANGE operations.

*  Correct WDIR primary command in File Manager to use the current FM FilePath.

*  Add the COND parameter to SAVE to match the SAVEALL COND support.  This will
   allow SAVE COND to be used on Multi-Edit sessions and only trigger saving of
   the modified files rather than every file.  On single edit sessions SAVE COND
   will only do the Save if the file has been modified since the last SAVE (or
   when loaded)

*  Correct file cleanup routine that removes old working files (JOBS, STATE etc)
   when they are sufficiently old.  An error caused all files in the folder to
   be removed once ANY file reached its expiry date.

*  Completely revise the newly implemented Backup/Restore support.  After
   reviewing how this process was handled, we thought we could do it better.
   The process is basically the same, but the actual backup file structure has
   altered.  All existing backups will be automatically migrated to the new
   standard, you will not lose any of your current backups.  In addition,
   support was added for a backup retention criteria to assist in managing the
   backup files.  A fll review of "Working with Backup and Restore" in the Help
   file is recommended,

*  Remove the unused option to use the folder name as the Profile name for those
   files which do not have a file extension.

*  Correct error in the line Data Shift (<< and >>) commands which was
   corrupting the color attributes of the line.


Between 10.2.19103 and 10.2.19107 (Apr 18/2019)
=============================================

*  Correct error in FM which no longer displayed the Line count.  Triggered by
   the changes to STATE files in the 10.2.19103 release.

*  The 10.2.19103  version change to the search for other instances of running
   SPFLite caused some problems.  To alleviate this a new Command line option of
   -TITLE XXXXX was created to allow a substitute string for the window title
   to replace the SPFLite version number.

*  Correct error in screen re-sizing routines which could trigger crashes under
   some circumstances.

*  Correct Windows API calls for Clipboard support to properly handle the
   returned data handles. This also corrects some crash incidents.


Between 10.1.9014 and 10.2.19103 (Apr 14/2019)
=============================================

*  Allow the Touch line command in FM to alter Read-Only files.

*  Correct INI handling quirk which prevented INVCHAR from being set to a
   blank.

*  Add the VV line command to the File Manager line command valid list, it was
   missing.

*  Correct Parsing of FM line commands with a repeat number to prevent exceeding
   the # of files in the current list.

*  Cleanup message box handling in the Crash intercept routine.

*  Alter the SPFLite version numbering format from using the last digit of the
   year to using the last two digits of the year.  As the year rolls over from
   2019 to 2020, we would have ended up with a possibility of out of sequence
   versions.  e.g.  This version updates from 10.1.9014 to 10.2.19060.

*  Correct error in STATE SAVE which did not correctly process color hilite
   values. This error could under some circumstances trigger a crash when
   reloading the file. Add an identifying header line to the beginning of
   the STATE file.

*  Add support to the Options and Profile dialogs so that the ESC key can be
   used to cancel out of the dialog.  This can be useful if the dialog ends up
   positioned with the Cancel/Done buttons off the screen.

*  Add a new Primary command - ALIGN - to assist in performing column alignment
   operations when editing data files. See details in the Help file.

*  Change FM Line Command RENAME to be case sensitive.  Formerly you could not
   'correct' the desired case of a filename because the command thought the
   old/new names were identical.

*  Correct the KB (Record) function.  It was not always removing the trailing
   (Record) string from the recorded entries.

*  Alter the AUTOBKUP support to use the new BACKUP and RESTORE support.  This
   support will now backup the file itself along with any associated STATE
   file.  The old support effectively dropped all STATE information.

   At the same time, add new BACKUP and RESTORE support which will allow for
   multiple Date/Time stamped Backups to exist.  The former BKP support only
   allowed for one level of backup.

   This new support backs up the data file and it's STATE information together.
   The backups are stored in a separate \$BACKUP\ folder created in the original
   data file's folder.  The FM RESTORE command will restore the files to their
   original location.  File date and time stamps are maintained throughout.
   More info in the Help document.

   With the introduction of this new Backup support, the old VSAVE support has
   been withdrawn.

*  Alter the definition of the C/CC line commands so that they can be used while
   in Browse mode for line range selection (as for CUT).

*  Correct error in parsing command operand strings which also equal color
   selection operands.

*  Add keyboaard accelerator shortcuts to most dialog boxes so that answers to
   simple prompts (like Y / N) can be done via the keyboard rather than having
   to click the button with the mouse. The required shortcut key will be
   displayed with an Underline in the button text.

*  Correct adding additional spaces to the command line on Retrieve.

*  Add a new literal type, a D-Literal, which stands for a Delimited String.
   This allows you to specify a prefix string and a suffix string and locate
   strings which match this regardless of the number of characters between
   Prefix and Suffix.

   e.g. A D-Literal of D"(|)" would find strings such as (A)  (123.45)  (= xxx =)
        A D-Literal of D"/*|*/)" would find comments like /* Say something here */
   More information is in the Help documentation

*  Correct the Win 64 version of the "Open with SPFLite" REG file in the
   distribution.  It had the wrong location for the location of the EXE file.

*  Change the search for running copies of SPFLite to ignore different version
   numbers.

*  Remove previous migration support for the color based changes between the
   8.5 level versions and the version 10 and up versions.

*  Add a new Options => General item.  "Warn on Open of Non-Text files?"  This
   option, if selected, will cause SPFLite to check the extension of files being
   opened against the list of Non-Text files (specified in the Options => FM
   tab).  If it matches, the user will receive a prompt to comfirm whether to
   proceed or not.  Editing of non-text files opens an exposure to accidentally
   altering and damaging such files.

*  Correct error in the KB (Up) command.  If vertical scrolling was not in
   effect, the cursor did not wrap to the bottom at top of screen.  Also correct
   similar scrolling errors in File Manager, which was not honoring the setting
   in Options => KB => Scroll Up/Down with arrow keys?

*  Cleanup the Help Topic Index which had drifted out of sync with the latest
   versions of the Help file.  This should assist the "Help xxxx" commands
   locate the correct page to open when Help is requested.

*  STATE changes.  Usage of a STATE file will 'touch' the file.  This will mark
   it active so that is does not get prematurely deleted for no activity in 180
   days.

   File Manager will now, when deleting a file, also delete any existing STATE
   file at the same time.


Between 10.1.8351 and 10.1.9014 (Jan 14/2019)
=============================================

*  Prevent a mouse marked text select area from including the Top / Bottom of
   Data lines.

*  Eliminate use of the Options => General => Valid Character string as the
   criteria for what characters can be validly displayed on the screen in the
   currently assigned font.  SPFLite will now evaluate the chosen font and
   determine which characters do not have a valid glyph.  A new Invalid
   Character substitution is available so the user can choose what to display
   instead for the invalid characters.  This substitution character may now be a
   blank.  As well, entering an "N" or "n" will request no translation be done.

   The initial execution of this SPFLite version will create the Invalid string
   definition based on your prior Valid string definition, you may want to
   'tweak' this definition, but it is not necessary.

*  The now unused Options => General => Valid Character string has been
   re-purposed and will now be used to specify the ACTUAL invalid characters
   that are to be considered as P'.' characters.  The specification uses the
   same simple syntax as the WORD line command. This avoids having to type a
   very long string of characters.

*  Correct searches using Hex literals (e.g.  X'FF').  The logic previously was
   performing CASE processing causing incorect results if the Hex value happened
   to also be an alphabetic character.

*  Tweak the logic which hi-lites found strings so that if the command itself
   uses color hi-liting operands (+colorname etc.),  then the search will not
   also add the invert color option to mark the found item.  Previously this
   double color setting obscured the actual user's requested color setting.

*  Add the number of lines pasted to the PASTE command successful message.

*  Correct the FOLD support which had gone AWOL during the Version 10 upgrades.

*  Correct the re-display of non-data lines (TABS, WORD etc.) when overtyped.


Between 10.1.8350 and 10.1.8351 (Dec 16/2018)
=============================================

*  10.1.8350 had a fix which effectively crippled RFIND and RCHANGE.  I must
   apologize for letting this slip by me.  Corrected in this release.


Between 10.0.8319 and 10.1.8350 (Dec 16/2018)
=============================================

*  As of the date of this release, I turn 76, and have decided to semi-retire
   from active development and only work on errors and bug corrections as my
   time and inclination permit.  You may still report bugs, just be aware I may
   not respond or work on them at the same speed as today.

*  So, as my birthday present to you, I am converting SPFLite to an Open Source
   license.  It will be released under the GNU General Public License (V3). The
   complete source and development folder will be made available on the SPFLite
   web site.

   At this time, I have removed the random registration nagging (for
   unregistered versions), and removed the online checking for new releases.
   This removes any dependency on the SPFLite web site.

   Any new fix releases will simply be made available on the web site and announced
   on the web site and in the SPFLite forum.

Other Changes / Fixes

*  As per the GPL recommendation, added an optional Splash screen at startup.
   The display of this can be suppressed in the Options => General settings.

*  Correct display routine for the Command line. It was not handling length of
   line correctly.

*  Correct generalized search routine to properly handle the +/- color
   operands.  The routine was performing color processing when driven by
   commands which did not expect nor want color processing to take place.

*  To prevent corrupted screen displays which can occur when the edit text
   contains characters which are not displayable in the currently chosen screen
   font, SPFLite will now use the list of displayable characters specified under
   the Options => General Tab and replace undisplayable characters with a user
   specified character.  This is similar to what ISPF used to do when it
   replaced non-displayable characters with a '.' (Period).

*  Correct handling of the Displayable Characters setting in Options => General.
   It was not correctly saving the value.

*  Correct error in Vertical cursor support.  Non text lines on the screen (COLS,
   BNDS, etc.) were not being re-drawn when the cursor moved.

*  Correct error in the TF line command, it was mis-handling the text attributes
   (color etc.) at some end of line conditions.

*  Improve handling of marked text highlighting when using the Vertical Cursor
   line support. (Still not perfect, but better)



Between 10.0.8298 and 10.0.8319 (Nov 15/2018)
=============================================

*  Cosmetic correction to File Manager Help lines to properly show LINES as a
   valid line command for a Filepath Display.

*  Correct STATE processing to flush the File Type/STATE cache whenever a change
   to STATE status is made.  This enables the File Manager LINES command to
   properly obtain STATE status for a file.

*  Correct macro Set_Line (again).  It was truncating text set in the Command
   Line to the length of the visible command line.

*  Correct EraseEOL of the Command line.   If the command line had been shifted
   due to exceeding the visible length, the truncation was not handled
   properly.

*  Correct handling of a RESET COLOR command to clean up data structures when
   complete to prevent interaction with future color related commands.

*  Correct File Manager layout formatting. EXT field was mis-handled and would
   not always appear when selected.

*  Resize the Options and Profile Edit dialogs to increase the font size and make
   them more readable. Add a promotional icon to these dialogs to promote the
   Open Source movement.

*  Correct error in CHANGE handling of +color values.

*  Correct error in handling of multiple SORT keys.

*  Correct error in text memory management affecting files over 10,000 lines. The
   color attributes for the text were damaged during buffer expansion.


Between 10.0.8287 and 10.0.8298 (Oct 25/2018)
=============================================

*  Correct File Manager Open File display which was incorrectly creating $Empty
   items.

*  Provide a default for the File Manager Submit working directory on brand new
   installations.  The default will be the \Documents\SPFLite\JOBS folder.

*  Correct error in CurrWord support which somehow stopped working during the
   Version 10 changes.

*  Correct macro Set_Line support to properly clear the previous line data when
   used to set a string in the command line.

*  Correct timing of initial colorization when a tabbed file is loaded.
   Colorization was being performed incorrectly before the tabs were expanded.

*  Correct Profile corruption when doing a Find-In-Files, a file is found which
   does not have a Profile yet, and the option to create a new USING profile is
   chosen.

*  Reduce font size of Status Bar and Tab Headers a bit from the original V10
   increase.


Between 8.5.8144 and 10.0.8287 (Oct 15/2018)
============================================

*  Complete revision of all internal color management.  This will correct the
   long running incompatibilities between the handling of normal screen color
   choices and defining the colors in the AUTO colorization files.

*  The initial run of this new version perform the following:
    - Create a backup copy of your \Documents\SPFLite folder.
    - Migrate all your old color choices to the new environment, your normal
      screen color settings will be maintained.
    - Display a short document providing more details.
    - IF you use Colorize support, prompt you for a default AUTO file to convert.
      IF you do not use Colorize support, there is nothing further for you to do.

*  All color choices are now made in the OPTIONS dialog, and all choices now
   will display sample text in the chosen colors.  This makes it much easier to
   choose colors and quickly see what the effect will be.

*  Color high-lighting support now allows up to 15 different colors.

   However, you can no longer specify MULTIPLE Hi-Lite colors names on commands
   like FIND/CHANGE/etc.   i.e. You can no longer use commands like
      FIND fred RED GREEN
   to search for 'fred' in either RED or GREEN.  One colorname at a time.

*  A FIND ALL command will now high-light ALL the occurrences of the found
   string the same way ISPF does.  This introduces a new RESET option - RESET
   FIND.   Otherwise the high-lighting is removed by the next FIND/CHANGE, or by
   any direct change to the contents of a high-lighted string.

*  The new color support can now 'paint' the screen about 25-30% faster then
   the prior version, meaning screen scrolling/paging is much faster.

*  Color support has been extended to Printing.  A new option on the PRINT
   SETUP dialog allows you to request printing in color or not.  Color
   printing only functions if you have HILITE AUTO ON and have a valid .AUTO
   file for the file being edited.   Color support is not functional for
   FM initiated PRINT nor for Print Screen requests.

*  The size of the Status Bar and Tab Headers has been slightly increased to
   accomodate a larger Font size.  (My eyes are getting worse, my guess is yours
   are too!)

*  You can also now choose which fields of the Status Bar you wish to be
   displayed, and can specify the order, left to right, in which they should
   appear.  With 14 available fields, most normal screen widths cannot display
   all of them, so you can choose based on your own priorities.  This
   specification has been added to the OPTIONS dialog. (Options => Status)

*  A new File Manager Line command has been added - L/LINES - this command will
   refresh the STATE information for the selected file.  The FM display column
   LINES obtains it's information from the STATE data.  The PROFILE for the
   selected file must have been set to STATE ON for this to function.

*  A new primitive was added (FirstLineCmd) which will move the cursor to column
   1 of the first Line command area on the screen.

*  Support has been added to allow KEYMAP entries to be saved as separate files
   in the MACROS folder.  This allows for easier editing of long complex
   keyboard macros which can now be split into multiple lines and also have
   comments added.  These macros are invoked in KEYMAP using an @macname
   syntax.

*  A new DO command is available to provide an alternative to the full MACRO
   support.  It provides no programability, it can only issue a series of commands.
   However it CAN issue all Primary commands (except DO), all KB primitives and all
   line commands.

*----- Plus current maintenance from Version 8.5 not yet released

*  Correct cursor positioning after Exclude line commands.

*  Allow LOCATE command in FM to operate with Profile lists.

*  Correct RLOCFIND so that it can be used to scroll while there are Line
   Commands pending.

*  Correct the Primary DIR command which was simply not working at all.

*  UNDO / REDO will now clear any pending Line Commands.

*  Correct crash when using .AUTO files with a large number of keyword entries.

*  Correct scrolling in File Manager which was not honoring a CSR setting.

Between 8.5.8104 and 8.5.8144 (May 25/2018)
===========================================

*  Correct RFIND handling when prior commands like EXCLUDE have altered the
   last line position.

*  Correct missing internal flag setting.  EXCLUDE/SHOW requests were not always
   triggering UNDO Save processing.

*  Correct internal logic error.  With large files (> 10,000 lines)  and use of
   Colour Highlighting, internal data structures could be corrupted.


Between 8.5.7231 and 8.5.8104 (Apr 15/2017)
==========================================

*  Add macro support for sub-tables within the Global storage support.  This
   enables multiple 'tables' to exist within the global storage area.  See the
   full description in the Macros Help document.

*  Correct initialization of 2 File Manager related INI values. One was missing
   and one had a wrong value.  Error could cause crashes during File Manager
   column sorting.

*  Correct handling of :ZALL and :\ZALL selection criteria.  i.e.  make them
   work as intended.

*  Treat a SAVEAS command in a CLIP session as if it were a CREATE command rather
   than triggering an error message saying to use CREATE.

*  Correct failure to add newly created files to the Recent Files list.

*  Correct error in AUTOFAV file masking support.

*  Add -NOLOOP command line option to request SPFLite internal loop detection
   logic be turned off.  This can assist with I/O operations to slower external
   file systems over network connections.


Between 8.5.7156 and 8.5.7231 (Aug 19/2017)
==========================================

*  Correct error in validating E-type literals.  The macro validation was
   inadvertently interfering with normal operand parsing.

*  Correct CHANGE handling of M and E type literals to properly adjust for
   the dynamic length of the change strings.

*  Add a simple #INCLUDE ability to SUBMIT jobstreams.

*  Alter macro function SetLine() to ensure any Color hiliting for the line does
   not exceed the text line length.

*  Alter macro function Set_CLR_Line() to allow specifying a CLR line longer
   than the text line without an error message.  The CLR line will be truncated
   to the text line length.

*  Correct the BackTab keyboard primitive.  It was crashing when used in HEX
   mode.

*  Add the back quote ` (x'60') to the Colorize scan for quoted strings along
   with the normal ' and ".

*  Correct handling of RFIND values so they are not 'lost' during other primary
   commands which also use the common internal search routines.


Between 8.5.7110 and 8.5.7156 (Jun 5/2017)
==========================================

*  Correct error in colorize keyword lookup, it was ignoring the last WORD table
   entry.

*  Yet another re-write of the BOUNDS command and the associated BNDS line data
   entry.  Basically now, the BNDS line data, when Enter is pressed, must be
   valid; it is no longer possible to just overtype a BNDS line and leave old <
   and > characters around and expect SPFLite to just 'know' to ignore them.

*  Correct several errors in MEdit support.  Line command (D)etach wasn't
   working, first file wasn't being marked modified correctly, a CANCEL command
   was crashing SPFLite and some other errors in marking lines and files
   modified.

*  Correct handling of certain substitution characters.  Some were failing to be
   resolved properly.

*  Revise the Get_Line$() macro function to allow retrieval of all line types,
   even normally non-modifyable lines.  These non-modifyable lines are still
   restricted from being 'saved back' using Set_Line$ function.

*  Create a new macro function Get_Modified_FileName() to allow requesting the
   modified status of a particular filename within a MEdit session.  If used in
   a non-MEdit session, it will act just like the simple Get_Modified()
   function.

*  Remove limitations on the number of files an FM ALL MEDIT command could
   handle.  Also, when more than 100 filenames are entered, it will pop-up an
   option to allow suppression of the File-Watch function.   As the number of
   files increases, there is more risk of exceeding program Stack space, and
   less likelihood of File-Watch even being needed.


Between 8.5.7027 and 8.5.7110 (Apr 21/2017)
==========================================

*  Correct error in handling dotted line references which are larger than the
   last real line.

*  Extend the display support for horizontal and Vertical line cursor rulers to
   the File Manager screen.  Formerly, these enhanced cursors were only
   available on the normal Edit screen.

*  Correct error in typing into the Command line in Insert mode when the cursor
   position is past the end of the current line data.

*  Correct error in handling EOL AUTO deblocking when the last line in the file
   does not contain any valid delimiter.

*  Correct several errors in the new NUMBER support.  The errors were impacting
   the operation of the PROFILE EDIT handling.

*  Remove support for the FILTER command.  This command is really no longer
   needed since full Macro support was added.   For the last couple releases, a
   warning message has been issued announcing the coming removal.

*  Add a new "Lines" column to the File Manager to show the number of data lines
   in the file.  Note that this value will only be displayed for those files
   whose Profile STATE option is set to ON, and which actually HAVE valid STATE
   data.  All other conditions will be displayed as blanks.  To make this a bit
   more similar to ISPF, the command STATS will be added as an alias of the
   STATE command.

*  Correct error in print headers / footers when performing the print from
   within File Manager.  Substitution of ~x type file related variables was not
   being performed correctly.

*  Correct error in the RLOCFIND REVERSE handling.  It was not properly handling
   the REVERSE option when the last search was a LOCATE.

*  Correct error in handling BKP file creation during a MEdit session.  Only the
   first file was having the BKP file created.

*  Correct errors in MEdit handling.  When converting a simple Edit session into
   a MEdit session, the modified state of the existing Edit file was not being
   carried forward.  Also, converting a session from a normal Edit to a MEdit
   session, was enqueing the new fileame twice.

*  Enhance the File Manager RENAME command to also rename any associated STATE
   files the same way the Primary RENAME command already did.

*  Correct cleanup code which removes old SUBMIT work files.  In prior versions,
   these were all created as *.TXT files.  This was altered to use the extension
   of the edited file.  These non *.TXT files were not being cleaned up
   properly.



Between 8.4.6153 and 8.5.7027 (Jan 27/2017)
==========================================

*  Correct handling of Left arrow in Command line when command line has shifted
   left due to length.

*  Correct handling of a RESET command issued within a macro.

*  Add support for number of new commands to handle text numbering similar to
   that provided by the ISPF NUMBER command.  Check the documentation for
   details on these new commands.

*  Enhance Macro function Set_Line() to allow setting a string into the Command
   line.  (Experimental)

*  Correct error in Request_Label$() macro functio.  (Loop when no existing
   normal label exists)

*  Alter the dialog building on systems where the default font size has been
   altered so that dialog labels are displayed in an appropriately scaled font.
   This will prevent the truncation of labels on systems which run in larger
   text font mode.

*  Revise the SPF_Parse() macro function to provide additional flexibility in
   specifying the macro operands.  Please refer to the Macros Help file for full
   details.

*  Correct the operation of the Macro HALT command when issued with no
   operands.  It was terminating the macro without allowing thinBasic to perform
   it's normal cleanup functions.

*  Corrected error in the (Swap) keyboard function when operating in PowerType
   mode.

*  Correct error in the TC Line command. Depending on the specific data content,
   the processing could perform an incorrect Title Case operation.

*  Correct error in handling changes to the BNDS line.

*  Correct screen drawing when HEX ON, HIDE ON and excluded lines are used
   together.

*  Add new option to the File Manager lists.  The dates for files modified since
   the SPFLite session started, as well as those modified since yesterday at
   12:01 AM will be color hi-lighted to make them stand out in the list.

*  Add a new option to the SORT command (MARKUNIQ).  This option allows you to
   mark unique sort lines in the file as USER lines.  This will allow
   manipulation of unique / non-unique lines in a file in a convenient manner.


Between 8.4.6075 and 8.4.6153 (Jun 01/2016)
==========================================

*  Correct error in handling a move of a COLS line.

*  Correct building of STATE file data when filtering using Excluded lines or
   U/NU is active.

*  Correct handling of the Re-Open files logic when SPFLite is started using
   -INIT to specify an alternate INI file.

*  Improve handling of the Windows Clipboard to report when errors occur while
   reading / writing the clipboard.

*  Ensure File Manager path entries entered on the screen contain a trailing \
   for consistency.

*  Correct cursor positioning when left/right autoscrolling occurs while in HEX
   mode.

*  Add two new functions to the macro support.  Reset_Gbl_Str and
   Reset_Gbl_Num.  These functions will reset (Empty) the global string and
   numeric storage areas.


Between 8.3.6022 and 8.4.6075 (Mar 15/2016)
==========================================

*  Revise the handling of searches which have trailing blanks in the search
   string and how they are treated when there is a partial match at end of
   line.  Previously, SPFLite would treat an end of line as if it had been
   extended with blanks.  This is being changed so that this creation of
   'virtual blanks' is no longer done.

   This means that search strings must match the actual real data present in the
   line.  e.g.  a search for "ABC  " will no longer match a line which simply
   ends in "ABC".

   If you require the more flexible search as it used to be done, please explore
   using Picture Literals and use the { and } arguments, or the other
   alternative would be to use a Regex expression.   Both of these provide
   powerful tools for text searching.

   The former SPFLite method was not exact and could cause incorrect lines to be
   selected.  e.g.  What if the search for "ABC  " did NOT want to be satisfied
   with a line ending in simple "ABC"?

*  Correct loop in (Edit), (Browse) and (View) KB primitives when the selected
   filename is effectively null.

*  Revise International character support and replace the global option with a
   new setting "Only English letters A-Z and a-z are considered alphabetic".
   This should provide for more consistent handling of Upper/Lower case
   conversions. Please see the Help file for more information.

*  Standardize the insertion point for special lines like BNDS, COLS, MARK
   etc.  Previously some were inserted before the selected line, and some were
   inserted after.  They will now all be inserted before the line containing the
   line command.

*  Upgrade the macro support to use the latest version of thinBasic. Also make
   the standard \SPFLite\Macros folder become the default folder for #INCLUDE
   directives.

*  Correct error in the line number lookup code.

*  Reinstate the change which causes the Enter key to perform a reset of a
   marked area automatically.  This change inadvertently crippled the TT line
   command and was withdrawn.  The replacement code no longer interferes with
   the TT line command.

*  Correct the new CLONE command to use the proper Profile for the cloned file
   rather than using DEFAULT.

*  Correct error in the RUN command which created a temp. file with two periods
   preceding the file extension.

*  Revise handling of line commands when an error condition is detected along
   with other valid commands being present.   Where possible now, the valid
   commands will be performed before the error condition is reported.

*  Correct initialization routine.  The default status of the INS/OVR keyboard
   flag was being cleared after being set.

*  Add Date and Time to the filename used to save Crash Reports.  This will
   uniquely identify each one and prevent overlay of previous reports when
   multiple crashes occur close together.

*  Correct handling of the command line -INIT option.  It was not handling
   INI file names other than fully qualified ones.

*  Correct error in the Keyboard Trap which was not handling "Null'd" keys
   properly.


Between 8.3.5337 and 8.3.6022 (Jan 22/2016)
==========================================

*  The -INIT command line option had been accidentally disabled. Fixed.

*  The logic for running in 'Portable' mode somehow lost the change which
   moved all the environment folders to a \CONFIG subfolder.  Corrected.

*  Prevent attempts to place data in the clipboard which contains X'00'
   characters.  To do so would truncate the clipboard contents resulting in data
   loss.

*  The Primary RENAME command was not working when using the pop-up Rename Box,
   it worked only when the new name was entered as a command operand.
   Corrected.

*  Correct crash error in the Mapping string Hex support function.

*  Correct crash when using Vertical cursor line support and switching between
   HEX modes.

*  Enhance the ANSI pop-up window support.  A second primitive (CharSetCol) has
   been added in addition to (CharSet). The new version will rotate the rows /
   cols of the character display to match your visual preference.   In addition,
   you may now have multiple instances of the ANSI window open at one time.
   e.g. one in ANSI mode, one in EBCDIC mode.  The status display of the current
   clipboard contents has also been improved.

*  Correct (again) the handling of Inserted lines.  A change in 8.3.5295 had
   accidentally crippled the automatic insertion of new Insert lines when
   pressing Enter while the cursor is located within the last inserted line.

*  Correct the CLONE command to ensure the new cloned tab is opened in Edit
   mode.

*  Correct handling of the line number field with 'special' lines like BNDS,
   COLS, etc. to prevent incorrect results when locating lines by line number.

*  Correct SAVE/SAVEAS to properly place the filename in the Recent Files FLIST.

*  Reverse a previous change which had Enter key processing perform a reset of
   a marked area automatically.  This worked fine, except that it completely
   crippled the T/TT line commands.  (Oops!)

*  The OPEN command had always opened the specified file in Edit mode.   There
   are now two variations OPENV and OPENB which will cause the file to be opened
   in View or Browse mode respectively.

   As well, OPEN/O OPENV/OV and OPENB/OB line commands will now be supported in
   File Manager to perform the same functions.

*  The CLONE command has been re-purposed.  It no longer simply creates a
   temporary file of the *.ext format, which you have to SAVE/SAVEAS later to
   make a permanent file.   Since the majority of CLONE uses are to create an
   actual alternate file, that is what it will now do.  You will be prompted
   immediately for the name of the new cloned file.

*  Add a DELETE/DEL option to the CUT command.  CUT would always delete the CUT
   lines if specified via M/MM line commands, but the same delete option did not
   exist when selecting CUT lines using other criteria (X lines, U lines etc).
   The DELETE/DEL operand now allows you to delete the CUT lines, no matter how
   they were selected.

*  Revise code used to paint hi-lighted (pen color) areas of the display. There
   should be a noticeable speed improvement when multiple hi-lighted areas exist
   on the current screen.

*  When Read-Only files are requested to be opened in Edit mode, SPFLite has
   previously issued a message and opened the file in Browse mode.  This has
   been altered to now open the file in View mode.

*  Correct CAPS ON processing when the Keyboard is in Insert mode.


Between 8.3.5295 and 8.3.5337 (Dec  3/2015)
==========================================

*  Clicking on the Date to change sort order in File Manager was broken. Fixed.

*  Correct display of the 'Page n of m' Status bar message when running in
   PAGE ON mode.

*  Alter START FIRST in PAGE mode to position on the first real data line rather
   than on the Start of Data line.


Between 8.2.5174 and 8.3.5295 (Oct 22/2015)
==========================================

*  Add a new FM primary command - ALL.  It supports operands of:  BROWSE, CLONE,
   EDIT, MEDIT, PRINT, TOUCH and VIEW.  It acts on all normal files currently
   being displayed, regardless of the method used to select the files.

*  Expand the normal ALL FM line command to support VIEW.  (Overlooked when
   BROWSE was split into BROWSE and VIEW commands).

*  Expand the handling of column sorting in File Manager.   File Manager will
   now save the column sorting data uniquely for each type of display.  e.g.
   Recent, Found, FilePath, Favorites etc.  and switch to the saved values
   whenever the basic display is changed from one to another.

*  Expand the display of the current filename in the Title Bar when editing
   files in MEDIT mode to display the filename of the top screen line when the
   cursor in not located within the edit lines (e.g. on the command line)

*  Add a new facility we have called 'Block Insert Mode'.  This enhances the
   edit capabilities when a block of text is highlighted.   If Insert mode is
   set, and the cursor is located within the Highlighted block, then characters
   can be Inserted, Deleted or Backspaced over within the block and the typing
   duplicated for EACH LINE in the block.  The Highlighted block will
   dynamically expand or contract to adapt to the changes.   This is a 'sort of'
   mini PowerType mode.

*  Replace the Regular Expression engine used internally with a much more
   powerful, industry standard one.   We have chosen to use PCRE (Perl
   Compatible Regular Expression) as the engine.  This will provide
   significantly enhanced search abilities using the RegEx literal type
   (R"xxx").

*  Add two new CHANGE only literal types.  These new functions provide some
   major new abilities in making text changes.

   - E"xxxxx" which allows the invocation of a MACRO to perform the actual
     change of the found string.   This will allow creation of complex change
     commands beyond the scope of normal SPFLite supported options.  Refer to
     the Documentation for full details.

   - M"xxxxx" which provides a powerful Mapping function to allow complex
     transformations of the found string.  Refer to the Documentation for full
     details.

*  Add two new AUTO file directives INCLUDE and EXCLUDE.  These allow early
   filtering of the data lines and the ability to choose only certain lines for
   complete colorization.  Lines rejected by these operands will be colored in
   the normal SCHEME 0 default.

*  Modify the file mask support in File Manager so that the * wild card
   handling is more compatible with that used in Windows Explorer when followed
   by a .(period).  A mask with *. will skip to the LAST period, not just the
   NEXT period.  Any other character following the * will still skip to only
   the NEXT occurrence of that character.

*  Some instability has been detected in the internal Hash routine used by
   SPFLite to ensure the validity of the State files and the User keyboard
   definition file (SPFLite.KBD).  As a result, the hash routine has had to be
   revised.

   The conversion to the new hash algorithm will be automatic, both your KBD
   file and newly created STATE files will be written using the new algorithm.

   This unfortunately means these files are not backward compatible should you
   for any reason go back to an older version of SPFLite after using this new
   release.

   If you DO back off this new release, your old KBD file has been retained for
   you with the name SPFLite.Pre8.3.KBD.  Simply swap this back to SPFLite.KBD
   to regain your old definitions.

   The new STATE files however will be rejected.  Unfortunately this cannot be
   prevented.  All the real data files are unaffected, only the STATE
   information will be lost.

*  Modify the validation of the previous screen position.  Previous changes to
   accomodate multi-monitors prevented the rejection of invalid locations.

*  Modify SUBMIT so that the temporary Submit file is created with the same
   extension as the file being edited.

*  Correct the handling of the 'Close FM on last file close', recent changes to
   choosing the next tab to display when one closes had crippled this support.

*  Correct saving of the saved FM criteria during shutdown.

*  Correct handling of PROF USE when removing an existing USE profile.

*  Correct handling of MIXEDCASE in colorize AUTO files.

*  Correct Status Bar initial display of the selected text # and @ values.

*  Correct Status Bar display of file date/time for New files and SaveAs files.

*  Correct the ~X substitution variable, it was not returning the Extension
   with a leading period.

*  Correct handling of Inserted line cleanup. Some combinations of KB sequences
   were not being handled the same as real ISPF.

*  Correct handling of internal debug stack during Macro processing.

*  Correct error in colorize parsing triggered by an unclosed quoted string.

*  Correct error in parsing filenames with folder names containing periods and
   filenames without extensions.

*  Correct loop when searching for blanks and a totally null text line occurs.

*  Correct UNDO processing to properly retain PROF display lines.

*  Correct UNDO processing. It was incorrectly always leaving the file in
   modified status.


Between 8.2.5174 and 8.2.5179 (Jun 28/2015)
==========================================

*  Correct cleanup of UNDO checkpoint files.

*  Correct re-open previous files opening file in the incorrect mode (Edit,
   View, Browse)


Between 8.2.5165 and 8.2.5174 (Jun 23/2015)
==========================================

*  Correct cursor positioning performed by the Primary PASTE command.

*  Correct button label in the Choose Default INI pop-up dialog.

*  Expand the number of allowable SCHEMEs in an AUTO colorize file to 30.

*  Correct logic of ESCAPECHR handling in AUTO colorize files.

*  Correct handling of command line options, -V and -B were being ignored, and
   FM path requests were not always being honored.

*  The EXIT command has been extended to accept either END or CANCEL as
   operands, this allows a quick shutdown using CANCEL instead of END to
   terminate each tab.  If CANCEL is used, it also accepts the DELETE / PURGE
   operands.

*  When editing multiple files in MEdit, the filename of the file on which the
   cursor is located will be shown in the Windows title bar.  This will assist
   in knowing which file is being worked on when the =FILE> lines are not
   vivible.

*  Correct error in the 'Portable Version' support, it was not properly
   switching the default INI file location to the portable drive.  In addition
   restructure the portable file structure to reduce clutter in the main EXE
   file folder.

*  Revise tab switching logic when tabs are closed to swap to the most recent
   active tab before the one being closed.

*  To make use on Non-US keyboards easier, aliases have been created for the
   / and \ line command modifiers.  . will equal / and .. will equal \
   For example c. will mean copy to the bottom of the file, just like c/

*  Allow an overriding Profile to be specified on the external command line
   startup of SPFLite.  This is equivalent to specifying the Profile on an
   normal Primary Edit command.  The .profilename operand should be entered
   on the command line immediately following the filename.   If the filename is
   quoted, the .profile name should appear following the quoted filename


Between 8.2.5103 and 8.2.5165 (Jun 16/2015)
==========================================

*  Correct a serious problem in handling the Status Bar.  This problem was
   causing SPFLite to randomly become totally non-responsive.

*  Add a new AUTO colorize word type.  Colorize will now support a NUMERIC
   directive to specify a unique color for totally numeric 'words'.

*  Correct handling of the File Manager FF exemption list.  V8.2 accidentally
   created a problem in storing the value properly in the INI file.

*  Correct a minor formatting error in the File Manager Quick Launch bar.

*  Prevent loss of previous FIND/CHANGE criteria caused by file write processes
   (SAVE, VSAVE, CREATE, etc.)

*  Correct error which prevented using an RFIND/RLOCFIND function key to perform
   an initial FIND / CHANGE command.

*  Correct error when a file is reloaded following a notification of
   modification by an external program.  The edit mode (Edit, Browse, View) was
   not being re-established properly, all sessions were converted to Edit
   sessions.

*  Correct badly formed entry in the Recent FLIST when a file was saved.

*  Correct handling of marked text to prevent inadvertent text selection
   during mouse operations.

*  Correct screen marking routine, particularly in the Command line.

*  Correct handling of color hi-liting by CHANGE commands.  Removal of
   color from a line's text was not always fully processed.

*  Correct CLIP command.  It was not properly honoring a private clipboard
   name operand.

*  Correct handling of the Tab mode flag internally, caused various errors in
   the handling of tabs.

*  Correct saving of MARK columns.

*  Improve saving of FM NOTE data when swapping away from the FM tab.

*  Correct (CopyPaste) to work properly with FM NOTE fields.

*  Correct error in handling line label/Tag toggle commands.

*  Correct action of Bksp when in a highlighted area, it was not properly
   handling multi-line marked areas.

*  Correct handling of command line operands which provide starting values for
   the File Manager display.

*  Add a safety check in the file open routines to ensure that the filename
   requested is not actually a folder name.

*  Correct error in RCHANGE, it was not allowing it's use as the starting point
   for a full CHANGE command.

*  Correct error in building the VSAVE filename when the file being edited is
   still an unsaved clone file (e.g. the name is *.extn).

*  Correct 'broken' Primary BOUNDS command.

*  Correct mis-positioned COLS line. It was being inserted after the requested
   line rather than before.

*  Correct the COPY command which was not properly handling the inclusion of
   files which needed different SOURCE translate tables from the primary file.

*  Correct tab selection when a new file is opened from Windows Explorer and
   passed to an existing SPFLite instance.

*  Correct initialization handling of the DEFAULT.INI file, it was incorrectly
   being reset to defaults.

*  Correct an error in re-sizing operations that could cause a crash.


Between 8.2.5085 and 8.2.5103 (Apr 13/2015)
==========================================

*  Correct keyboard handling of the extra keys present on foreign language
   keyboards. An incorrect index was triggering a crash.

*  Correct handling of PROFILE USING. Altered values were being stored in the
   incorrect INI file (i.e. not the USE'd profile).

*  Correct errors in FILTER and CMD commands in handling the CMD window.


Between 8.1.5064 and 8.2.5085 (Mar 26/2015)
==========================================

*  Alter the field delimiter used internally for FLIST contents.  Previously a
   comma was used, but since a comma is a legitimate character for a filename
   (who knew!) users who had such filenames found FM simply didn't work.

   The delimiter has been altered to a | (vertical bar).  If you do not manually
   create FLISTS, then the change will be transparent and you need do nothing.

   ** However ** once you migrate to this version, if you back off to a prior
   SPFLite version, your FLISTS will probably not work.  They will need to be
   manually edited to change all | back to ,

*  Improve File Manager 'nesting' so that when browsing up/down folder
   structures, a return to a prior level will re-display the previous scroll and
   cursor positions.

*  Correct false warning message when loading RECFM F LRECL nnnn files. The
   message incorrectly warned that the file was not a multiple of the LRECL
   value.

*  Add a new option to File Manager to allow choosing the location within a list
   of Directory entries.  They can be positioned at the Top (as is done
   currently), at the bottom, or in-line in alphabetical sequence within the
   filenames.

*  Correct error in routine which deletes unused Insert lines.  If additional
   Insert lines are requested before cleanup has been performed on prior lines,
   it was possible for extraneous '''''' lines to remain.

*  Prevent unresolved '''''' lines from being written to a file if they exist at
   the time of the write operation.



Between 8.1.5002 and 8.1.5064 (Mar 5/2015)
==========================================

*  Correct error in the FM VER line command which could trigger a crash if the
   FLIST ends up empty and is deleted.

*  Alter list of FLIST files in FM so that only the filename (minus path) is
   displayed.  If the cursor is over a single line, the full path will be
   shown in the FSPEC line in the headings.

*  Correct loss of cursor during Minimize / Restore activity, or loss / regain
   of focus (sometimes).

*  Correct error in COPY and PASTE commands when the insertion point is marked
   with a 'B' line command on the Bottom of File line.

*  Correct error in the UNDO process which can cause program crashes. If chained
   commands cause UNDO processing to be followed immediately by a switch to a
   different Tab, depending on the size of the edit datasets, and the speed of
   the processor, a crash can occur.

*  Add a new function - ACTION - which can optionally be used to request an
   automatic SAVE or VSAVE to be performed after 'n' data altering
   interactions.  See the ACTION command in the Help document for further
   details.

*  Correct macro function Get_Find_LPtr().  If the status of excluded lines
   changed during the FIND/CHANGE command, the returned LPtr could be
   incorrect.

*  Correct error in the DELETE ALL xxx command.   The deletes were performed
   correctly, but the setting of the modified flag for the file was not being
   set correctly depending on the state of excluded lines adjacent to the
   line(s) being deleted.

*  Add additional validity checking to AUTO file statements and improve the
   contents of the error message.

*  Rename the FM line command VERIFY to NORM (Normalize) to avoid conflict
   with the recently added View command.  The command can be entered as
   N or NORM. (Or the block mode NN/NN version). As well, NORM will no longer
   re-write an FLIST which has not actually been altered.


Between 8.1.4311 and 8.1.5002 (Jan 2/2015)
==========================================

*  Correct AUTO colorization when using comments with start/end delimiters.
   (Like /*   */)

*  Correct loop in macro handling of SPF_CMD items.

*  Correct PRINTER SETUP saving of a printers DUPLEX setting.

*  Correct screen size calculation error which caused width to slowly grow.

*  Relax pseudo line label syntax to allow use of .0 to indicate the
   *** Top of Data **** line.  This will allow commands such as ADD and LINE to
   use the top of data line as a valid reference.   e.g. "LINE N .0" would
   insert a blank line at the top of the file.

*  Correct command table entry for VV command (alias of REVERT).  It was not
   flagged as being eligible for command chaining.

*  Expand AUTO color controls to support COMMENT1 thru COMMENT9 statements.

*  Remove validation of previous screen position vs the curent desktop so that
   previous locations on multiple screen configurations are not treated as
   being invalid INI values.

*  CREATE REPLACE with MM line markers were not deleting the lines following
   the file creation.  Corrected.

*  Correct the OPEN logic to use the name of the currently running EXE file for
   the new session rather than assuming it is named SPFLite.EXE.

*  Alter the timing of the automatic 'Check for New Version' to later in
   the initialization process.  It was failing to initialize completely if for
   some reason it could not reach the SPFLite Web Site.

*  Alter File Manager display of FLISTS so that if all files are from a simple
   single-path request, the list will only display the filename (without the
   repetitive path) for easier reading.



Between 8.0.4181 and 8.1.4311 (Nov 7/2014)
==========================================

*  Correct handling of cursor positioning when multiple primary commands are
   entered separated by ; delimiters.

*  Correct handling of SPFLite.EXE command line operands specifying a starting
   path and mask for File Manager.

*  Correct handling of EOL hex character strings as delimiters.

*  Correct SAVEALL command which was crippled by the V7 => V8 restructuring.

*  Correct cursor positioning when mouse scrolling.  The cursor remained
   'locked' to the screen location rather than following the text line on which
   it was located.

*  Correct error in (( line command when the shift created a null length line.

*  Correct error in cursor positioning when switching back to File Manager
   after CANCELing out of an Edit tab.

*  Correct cursor positioning following a line sequence C -> A to put cursor
   in the line number area rather than the data area.

*  Alter the RESET command to remove RETRIEVE from items reset when using the
   ALL operand.

*  Add support to the FF (Find in Files) command to better handle files which
   do not have an existing Profile to control the reading of the file's data.
   You may now Abort the FF command, or have the file type automatically added
   to the FF file exemption list and continue.

*  Correct some pop-up dialogs to be properly MODAL so that they can not be
   ignored or dismissed without taking the needed pop-up action.

*  Expand message handling ability.  When one interaction generates multiple
   messages, the most severe message is the one issued.  When multiple messages
   are issued internally, this message will be prefixed with a + sign.   If
   HELP is immediately issued, the full chain of messages will be displayed in a
   pop-up list box for review.

*  Add documentation to the FF Command (Find in Files) to indicate that it DOES
   support column range operands.   It had always supported columns, however
   the documentation did not indicate it was supported.

*  Add missing documentation for the (CondLineNo) KB primitive.

*  Add support for new built-in Tags :Z  :ZF and :ZNF.  These new tags will
   allow command chaining based on the lines processed by the immediately prior
   command.
      :Z   includes all lines examined by the prior command
      :ZF  includes all lines selected by the prior command
      :ZNF includes all lines examined but not selected by the prior command

   This will allow commands like:
      CHANGE ALL "ABC" "DEF"; LINE ] ALL :ZF
   which would change all "ABC" to "DEF" and then Indent all the changed lines.

   Or
      COPY INSERT.TXT AFTER .A; EXCLUDE all :ZF
   to copy a file into the edit and immediately exclude all the inserted lines.

   Or
      CHANGE ALL "AAA" "BBB" .L1 .L2 X NU; CHANGE ALL "CCC" "DDD" :Z
   which would do the first change, with its specialized line range, and
   then do the 2nd change to the same set of lines, without needing to repeat
   the .L1 .L2 X NU operands.

   Full details may be found in the Help file under "Working with Command
   Chaining".

*  Add a new EXCLUDE command to File Manager.   This will enable bulk excludes
   of files from the list based on the same type of Mask string allowed on the
   Mask line for FilePath or the Mask operand of FLIST entries.   This command
   would be useful for example when using FF (Find in Files) and there is a
   class of filenames which you would prefer be exempted from the FF operation.

*  Add a new Primary command - THEME - to allow quick saving and loading of the
   custom color settings.  Often, if you want to experiment with a different set
   of colors, it becomes awkward since there is no simple way to revert back to
   what you had.  Now you can save your settings and 'play' with new settings.
   It's also possible to share such 'themes' with other users by posting your
   themes on the SPFLite Forum.

*  Add a new Primary command - VIEW. This is a complementary command to the
   existing BROWSE which has been altered to make it impossible to accidentally
   modify the data.   BROWSE is now a *true* browse, changes are impossible.
   VIEW is now the browse tool to use when you may want to modify the data, but
   want additional protection against accidentally saving. A companion change
   also added the (View) KB primitive.

*  The ability to use KEYMAP to remap the NumLock key has been withdrawn.  This
   support was always tricky to implement and is being withdrawn due to problems
   in maintaining it.  The key is now classed like Shift, Caps Lock etc.  as
   being un-mappable.


Between 8.0.4181 and 8.0.4216 (Aug 4/2014)
==========================================

*  Add an option for printed output to have background banding in the same
   manner as the screen background banding.  See the additional option fields
   located on the PRINT SETUP dialog.

*  Corrected another error in reading RECFM V files, lengths > 256 were not
   being handled.

*  Added a new command line option -WINE, which tells SPFLite that it is running
   under the Wine emulator on Linux.  This triggers some minor differences in
   screen handling which improves operation.

* Corrected loss of mouse wheel function after some settings dialogs.


Between 8.0.4172 and 8.0.4181 (Jun 30/2014)
===========================================

*  Corrected checking of changes to File Manager file-path to only be done
   after Enter is pressed, it was doing it after each keypress.

*  Corrected error in reading RECFM V files introduced by the new code for
   RECFM VBI and VLI.

*  Correct handling of the Keyboard Hook routine to prevent accidental doubling
   of keyboard entries under some initialization combinations.

*  Alter the default master key mapping table so that the Ctrt-Alt key mapping
   of all keys with printable values (i.e.  the letter, number and special
   character keys) will now be (Passthru) instead of (Null).  This default
   will simplify the initial setup for all new users who require non-US
   keyboards and use of the Alt Gr key to enter national/special characters.


Between 8.0.4163 and 8.0.4172 (Jun 21/2014)
===========================================

*  Corrected missing screen refresh following execution of a user macro.

*  Corrected keyboard focus problem for pop-up dialogues when running under
   WINE.


Between 8.0.4157 and 8.0.4163 (Jun 12/2014)
===========================================

*  Corrected cursor not appearing in tab initially.   Only occurred in certain
   Windows releases.

*  Corrected various error in CANCEL / END which could trigger crashes.

*  (Backtab) KB primitive was simply not working correctly.  Corrected.

*  Corrected crash when deleting multiple individual lines, one of which is the
   last line, and the Reset Inset Mode on Attention option is active.


Between 8.0.4155 and 8.0.4157 (Jun 06/2014)
===========================================

*  File Manager keyboard selection of FilePath on the Quick Launch bar is not
   working.  This has been corrected.

*  Crash on Initial Start in the Welcome Dialog for brand new installs.
   Corrected.

*  File Manager directory display changes should always Home the cursor.
   Corrected.

*  EXIT and =X do not properly exit the program.  Corrected.

*  Corrected crash following the New Version Available pop-up message.


Between 7.1.4050 and 8.0.4155 (Jun 04/2014)
===========================================


A major review and revision of SPFLite internal code was completed.  The review
has had only small effects externally, but incorporates significant internal
improvements which should improve long term reliability and performance.

A completely revised File Manager was completed, introducing many new features
(see below).


File Manager
------------

A revised screen layout which has added a single line 'quick launch' line to
eliminate the previous set of lines at the top for Recent Files, Open Files,
etc.  This line remains visible while scrolling the list to remain easy to
access.  Other changes to File Manager include:

Quick access to your list of Profiles.  Browse, Edit, Delete etc.  line commands
are supported.

Enhanced FILELIST support.  File lists can now contain multiple file path
requests, each with their own unique file mask filters.

Line commands can now be entered in block mode, similar to line commands in the
Editor.  e.g.  selecting a series of files for MEDIT processing can now be done
with MM/MM line commands (or M3).

Exclude (X) is now supported to allow 'hiding' of lines in a long file display.

Forget (F) is supported for FILELIST displays to request a long term exclusion
of lines.  This support extends to FILELISTs which include generic path
requests.  Forget requests are maintained across SPFLite sessions and may be
undone or 'remembered' with a RESET F command.

A NOTE display column can be added to FILELIST displays where you can enter
reminders etc.  for a particular file.   These are also 'remembered' across
SPFLite sessions.

FF (Find in File) searches can now be interrupted not only between files, but
during an individual file search.  Useful when the file list accidentally
contains some huge non-text files.

A new DEFAULT command which allows you to switch the default line command for a
mouse click (normally SELECT) to any other valid line command.


Editor Changes
--------------

Several improvements to Editor functions:

File specific STATE setting.   You can now not only Specify STATE ON or OFF for
all files controlled by a Profile, but can establish a default ON/OFF status for
most files and exempt individual files from this default.   e.g.  You could have
STATE ON for all .TXT files and exempt SPECIAL.TXT from this default since you
know it is updated often outside SPFLite.

Simplification of Line Command aliases.  Many block mode line commands had
optional aliases to match the ISPF naming conventions.  e.g.  we had Uppercase
commands of UC / UCC / UCUC.  In this release we have eliminated 'doubling the
command name' as an option.  So Uppercase is now simply UC / UCC where the last
character is repeated for the block mode.  So line commands like LCLC, MDMD,
MNMN, OROR, PLPL etc.  are all gone.

Colorize support has been improved.  When the basic color theme of the AUTO file
differs widely from the color scheme used for a normal edit screen (e.g.
different background colors), some areas of the colorized screen could be
painted in unreadable colors.  New settinfs in the .AUTO file allow specifying
the colors of these non-text-data areas.

Dynamic colorization has been added.  Previously when editing a line,
colorization was only performed the next time the line was fully displayed.
This has been changed so that colorization occurs 'as you type'.

An AUTOCAPS mode is available when editing programming languages where it is
desirable to have language keywords uppercased for readability.  This support is
dependent on the existing AUTO colorize support being activated.   Keywords
defined in the .AUTO control file will be updated to be in Uppercase.   This
action is in two stages.  The first Uppercases the keywords only on the screen
display.   This is to prevent Uppercasing during typing; if typing the word
'forget', you wouldn't be happy with 'FORget' just because FOR was a language
keyword as you typed the 'r'.   When the file is saved, the uppercasing is
finalized and written to the file.

A new Options -> General selection is available to activate Keyword hi-lighting
on the command line.   This will trigger the hi-lighting of known command name
and operand keywords on the command line.  This is helpful where you might
accidentally enter what you thought was a simple text literal and 'forgot' that
it was a supported keyword operand for the command.  It can make deciphering an
error message a bit simpler.

The support for recognizing changes to the BNDS line has been re-written again
to react more logically to changes made to the line.  By matching the old and
new BNDS line, and recognizing specific changes, it will make altering this data
simpler and more reliable.

The PFKSHOW help lines now have an improved sort routine which should organize
the display to handle key names in a more 'natural' manner.  e.g.  F2 will sort
before F10.


Between 7.1.4016 and 7.1.4050 (Feb 19/2014)
===========================================

Improve loading performance for large files.

Add two new RECFM varieties VBI and VLI to support alternate format variable RDW
(Record Descriptor Words).  See 'Working with non-Windows Files' for more
details.

Improve performance of the translation routines used between ANSI and external
SOURCE values (e.g. EBCDIC <=> ANSI.


Between 7.1.4001 and 7.1.4016 (Jan 16/2014)
===========================================

Correct a few places where the move of the FILELIST files to a new folder was
not being handled correctly.

Correct handling of Escaped (\) values in picture literals.

A Profile reset was not setting the START option correctly to FIRST.  Corrected.

Correct BOTTOM command in FM, it simply wasn't working.

The (Swap) primitive has been enhanced to properly copy color highlighting
attributes during the swap.

Correct File Manager Delete Line Command.  It was not properly handling the
'Delete to recycle Bin' option.

Correct processing of PROFILE USING commands.  INI values for the involved
profiles were not being set correctly.

Correct Get_Curr_Line$ macro function.   It was removing leading/trailing blanks
when it shouldn't have.

Correct error in cursor positioning after an (EraseEOL) function, the cursor
set request was being issued with an incorrect internal priority level.

Correct saving of FM status on exit when displaying a single FILELIST.


Between 7.0.3217 and 7.1.4001 (Jan 1/2014)
===========================================


Please see the 7.1 announcement letter for more details on these items, or
review the Online documentation on the SPFLite Web site.


Primary-command changes
=======================

New ULINE, REVERT, NULINE and NREVERT commands to support the new User Lines
support.  See also the U/UU and V/VV line commands, described below.

Extended Find/Change color operands.

New COLLATE command to provide temporary character set usage for Hex and SORT.

New SUBCMD and XSUBMIT commands provide additional capabilities for SUBMIT.

Repeatable DELETE.  Like RFIND/RCHANGE you can now 'step' through the file
performing selective deletes.

New { and } Picture codes to support finding strings which begin or end lines
and optionally have spaces between the literal and the line start/end.

New TOP option for scrollable commands (commands that can trigger repositioning
of the screen).

FIND command alias FF supports using CC blocks to mark the search line range.

Enhanced SOURCE command and user-defined translation tables.

RegEx literals now supported for JOIN.

New Z labels (.ZCSR, .ZFIND and .ZLOC) available.

New ADD command allows macros a simple means to insert text lines.

New WDIR command, similar to the DIR primary command, to open a Windows
Explorer dialog for the containing directory of the current edit file.

New FOLD command to force the Edit display into all uppercase, without actually
changing the data itself.

Enhanced CLIP command to now accept an optional private clipboard name.

IMPORTTABS renamed to XTABS.

Extended SORT fields: The SORT command will now support 5 sort keys (like ISPF)
and the limit of 64 characters on the size of each key has been removed.

New SCROLL operand for PAGE.

Line-command changes
====================

New U/UU and V/VV commands to support the new User line functions.

New TX/TXX and TU/TUU commands.  These line commands will toggle the excluded
state (TX/TXX) or the User Line state (TU/TUU) of lines within their range.

New xNOTE commands:  Similar to NOTE commands, xNOTE commands provide a way to
enter extended types of NOTE lines into a file.

K line command modifier is now the & modifier.


Macro changes
=============

New Request_Label$ and Release_Label$ functions.

Implicit Block-Mode line macros.

SET symbol substitution added to SPF_CMD.


File Manager changes
====================

New WDIR line command:  Like the WDIR (Windows Directory) primary command.

When the Find in Files command FF is issued, a copy of the FF command, including
the string being searched for, will appear on the Found Files FILELIST display.


Key Mapping and Function changes
================================

Enumerate functions now work on highlighted text.

Implicit highlighting of single characters.

Enhanced (Swap) function. The (Swap) function is now enabled in Power Typing
mode and additionally, a swap operation can be performed when only one area is
highlighted.  When this is done, the swap is actually performed like a text
move.

Parameterized cursor movement functions: Existing functions (Left), (Right),
(Up) and (Down), and a new function (Column) now take a numeric n parameter,

Lenient (Edit) and (Browse) processing.   Previously, it was necessary for the
user to be very precise about how the text that was highlighted.  Now, any
leading or trailing spaces and delimiters are trimmed before processing.

New (CopyLcmd), (CopyAdd), (CopyPateAdd), (DataDeleteMark), (DataBackSpace),
and (FMCompact) primitives have been added.

New (CharSet) function replaces the previous (ANSI) function.


Other changes
=============

Relocation of .AUTO and .FILELIST files:  These are now located in new folders
AUTO and FILELIST under the main SPFLite directory.

Adjustable sequence (Line Number) area size.  The size of this area can be
adjusted now from 5 to 8 digits.

Vertical Insert Cursor is now available as an option.

Added support for International characters for P'.'  Picture Literals.

Use of ADS discontinued.   Due to Microsoft's stated direction of moving
away from ADS usage, SPFLite has converted STATE saving to normal data files.

Ability to automatically mark files of a specified name pattern to as Favorites.

SPFLite will now remember the screen-sizing state (Max/Normal) it was in when
closed and restore that state the next time it is started.

Enhanced AUTO file color codes. Severl new options for coding the color values
have been provided.

Highlighting of non-default BOUNDS in the Status Bar.

Many minor bug fixes:
=====================

* Enhance EOL=AUTO(NL) processing to handle another weird line ending created by
  Hercules.
* Correct setting of Profile name for files with no extension when the Option
  "Use DIR name as Profile when no extension" is selected.
* Correct handling of the RESET command when issued within a macro.
* Improve line range operand validation and make messages consistent.
* Correct KB primitive (Paste) in File Manager when used with a private
  clipboard name.  (The name was being ignored)
* Clarify the File Manager Help data for the Open Files display.
* Keyboard recording could not be started/stopped from the File Manager
  display.  This is now supported.
* Internal command table error effectively disabled the PL line command.  This
  has been corrected.
* Restriction of MINLEN to a maximum of 32 characters has been removed.
* Correct error in the default for RESET.  RED was inadvertently being cleared
  when not requested.
* Corrected error in Keyboard primitive (Swap) which prevented 'bailing out' of
  an incomplete swap operation.
* Correct error in handling alternating background colors when AUTO colorization
  is active.
* Correct separate errors in handling RECFM F and RECFM V files.
* Correct End of List message for the File Manager Open Files list to include
  the count of files.
* Correct error in the SPLIT command when multiple split characters occur on the
  same line.
* Correct error in line command parsing which caused the entry of specific 0
  (zero) numeric operands to be ignored.  e.g.  a TS0 line command.
* Correct setting of Profile name when doing a SAVEAS from a newly created
  file.  i.e.  from an (Empty) new file tab.
* When HILITE AUTO OFF was in effect, some aspects of colorization specified by
  an AUTO file were still being utilized.  Corrected to properly ignore the
  entire AUTO file.
* Correction to macro function SPF_CMD.  The passed command line was not having
  SET symbol substitution performed.  This will now be done.
* Correct colorize parsing.  Handling of escaped characters within a quoted
  string was skipping 1 too many characters.
* Expanded the KB primitives to work in non-PowerType mode.
* DIR command will now accept a file-pattern operand to filter the contents of
  the selected directory.Corrected long standing random bug in FIND search
  routine.
* Correct setting of screen sizes and default File Manager sort criteria during
  the initial startup run.
* Correct screen resizing when the cursor is on a line which no longer exists
  following the resize.  (Screen has shrunk)
* Correct error in validation of the Scroll > field.  Error was causing unneeded
  overhead by repeatedly updating INI file status when not  needed.
* Correct handling FB EBCDIC file with EOL=NONE.  LRECL was being incorrectly
  handled.
* Correct the Data Shift line commands < and >. They were not correctly
  performing the shift as per normal ISPF handling.


Between 7.0.3185 and 7.0.3217 (Aug 05/2013)
===========================================

  * Correct saving of the Options -> Screen -> Insert cursor size value.

  * Correct sample ONLY.MACRO code. (misplaced closing parentheses).

  * Create a new macro function HALT which combines the functions of Set_Msg
    and the STOP command.  This will simplify error handling in macros since
    only a single statement is needed to issue a message and terminate the
    macro.

  * The following macro functions:
       SPF_CMD
       SPF_SHELL
       SPF_EXEC
       SPF_DEBUG
       SET_MSG
       HALT
    have been enhanced to support multiple string operands and will concatenate
    them together with a single separating blank to simplify the creation of
    long command or message operands.

  * SPF_EXEC and SPF_SHELL have had two optional leading parameters created to
    allow finer control of how the command is to be run.   You may now choose
    whether to run the command asynchronously or not; and to choose whether the
    command is to run in a Hidden or Normal window.

  * Add macro function Get_Uniq_ID to return a unique ID number for the current
    edit session.   Unique in that it will never be duplicated within a single
    SPFLite instance.

  * Add macro function Get_FullPath(fname) to return a fully qualified path if
    the passed filename is only a simple name.

  * Create the Set_TopScrn_LPtr macro function to accompany the Get_TopScrn_LPtr
    function.  This will allow macros to easily set a desired line to be the
    new top-of-screen line when the macro exits.   Or to re-establish the
    position of the screen as of macro start by saving the value from the
    Get_TopScrn_Lptr function at the beginning of the macro.

  * Further correction to handling generic FILELISTs in File Manager.

  * Correct CHANGE handling of replacement null strings.

  * Correct handling of line labels.   Moving a line label by simply re-entering
    it on another line was not being done properly.

  * Create new keyboard primitives:

    (NewLineNS) and (TxtNewLineNS).  These are identical to the basic (NewLine)
    and (TxtNewLine) except that they will NOT cause the screen to scroll when
    the bottom screen line is reached; they will move the cursor up to the
    Command line.  (NS = No Scroll)

    (DeleteMark)  This will delete any single line marked text.  If no such text
    is selected, it will delete nothing.

  * Improve editing of a newly entered BNDS line by matching the new line to the
    old to detect what has changed.

  * Correct error in building the line control field for special lines which
    have also been changed (e.g. flagged with ==CHG> )

  * Correct default setting of the macro LoopTest flag (it was reversed)

  * Correct error in key validation during KEYMAP processing.

  * Eliminate (Clip) and (Set-Edit) sessions from being placed in the Open
    files list when exiting. Prevents annoying error messages on the next
    startup.

  * Correct handling of K (kept) line commands.  The retained command was not
    always being re-inserted on the correct line.

  * Revise validation of changes to the Scroll Amount field.  When the previous
    contents are not completely overtyped, it was not always detecting which
    characters were actually changed, causing validation errors.

  * Correct handling of pending block more line macros to allow scrolling
    commands to be processed.

  * Correct handling of inserted lines.  Entering a single character did not
    always trigger detection of the line being 'changed' for removal of the
    '''''' indicators.


Between 7.0.3182 and 7.0.3185 (Jul  4/2013)
===========================================

  * Correct crash when Cross-Hair cursors are used and the file is in HEX mode.

  * Correct the B(rowse) line command in File Manager when used to move to a
    lower directory folder.

  * Correct error in handling FILELIST entries with generic file paths.

  * If Re-Open files at start is active, only allow the files to re-open with
    the first instance of SPFLite.  When multiple instances are allowed, the
    2nd and subsequent instances will simply open to the File Manager tab.


Between 7.0.3177 and 7.0.3182 (Jul  1/2013)
===========================================

  * Add aliases to Help for MACRO and BASIC to open the macro Help files.

  * Correct LINE command internal flags so that line range operands are accepted
    properly.

  * Remove some old DEBUG code in File Manager that shouldn't have stayed in the
    release version.

  * Alter the macro functions which return Line command status data to always
    return status as of the macro start, rather than 'real time' as macro
    actions proceed.


Between 6.2.3061 and 7.0.3177 (Jun 26/2013)
===========================================

Bug and Error Corrections
-------------------------

  * MAKELIST command will no longer overwrite an existing FILELIST if it already
    exists.

  * Multiple file re-opens at startup did not always paint the initial screen
    using the correct colors if different tabs were using different colorize
    schemes.

  * Correct error in KeyMap which 'loses' PFK SHOW definitions when a key
    mapping is updated.

  * Correct error in initial program setup when choosing the initial defaults
    for Enter and Newline.  It was incorrectly setting lowercase W to (NewLine).

  * Correct crash on a (Tab) primitive when the cursor is below the last screen
    line.

  * Correct handling of BOUNDS setting on several commands.  Add BOUNDS support
    to the TS/TB commands.

  * Correct intermittent errors in Profile saving where changes to Profile
    variables were not properly saved.

  * MEDIT processing has received some internal improvements to enable it to
    handle larger numbers of files at one time.

  * Further performance improvements have been made to the handling of large
    data files.

  * Correct handling of Re-Open files at startup to properly handle filenames
    which contain commas.


Programmable Macro Support
--------------------------

  SPFLite finally offers a true programmable macro capability, far better than
  the simple SPM macros available in the past.   This allows you to create new
  Primary and Line commands to accomplish custom editing functions.  We have
  included a variety of sample macros to demonstrate its capabilities, and to
  provide models to help you in your own first attempts to write macros.  The
  former SPM macros are no longer supported, but we have provided a conversion
  script called SPMConvert.MACRO, to help you migrate these to the new format.
  See Command Macro Support in the Help for details.

Primary-command changes
----------------------

  Direct Script Execution:
    This provides for simple execution and testing of scripts (BAT files,  Rexx
    execs, Perl scripts, etc.) directly from the Edit window without requiring
    you to SAVE, Open a Command window, and then enter the scripts name and
    parameters.

    The previous RUN command, which simply executed a command string in a
    Windows Command prompt, has been renamed to CMD to better represent what it
    does.  The RUN command is now used to perform this Direct Script Execution.
    Both RUN and CMD allow you to control whether the Command window is
    automatically closed with new options on the Options => Submit panel.

  Data Shift option for CHANGE:
    Previously, SPFLite only supported a default Data Shift mode for the
    CHANGE primary command (compatible with that used in ISPF), which affects
    how data on a line is handled when the search string and the change string
    are of different lengths.   This release adds a new Column Shift mode
    ability.  See Effect of CHANGE Command on Column-Dependent Data for
    details.

  Edit / Browse Profile Override:
    ISPF has long had the ability to specify an overriding profile name on its
    Edit Entry Panel.  This capability is now possible in SPFLite, on the Edit
    and Browse commands as well as via the File Manager selection list.   See
    the Edit and Browse commands, and Working with File Manager, for details.

  Edit / Browse / Copy / Clone Clipboard Filename:
    These four commands will now accept a simple * asterisk in place of the
    filename operand, to indicate that the desired filename is currently sitting
    in the Windows clipboard.

  Persistent Text Selection and Supporting Command Line Arguments:
    When a text area is selected, either via the mouse or by shift-arrow keys,
    the boundaries of the selected area are remembered and can be used again
    later.  The area can be quickly reselected with a mouse-click or a single
    keyboard key.  In addition, the line and column range can be referenced on
    Primary commands through the use of special text selection operands.  See
    Working with Line Labels for more information.

  Primary Command & prefix to retain command:
    To be compliant with standard ISPF usage, if the primary command is prefixed
    with an &, the command is not cleared from the command line after command
    completion.

  New Primary command DIR:
    The DIR command, when issued in an Edit or Browse tab, will switch to the
    File Manager and display the contents of the folder which contained the file
    being edited or browsed.   The DIR command may also be issued as a Line
    Command within File Manager to switch the display to the folder containing
    the file on the selected line.

  Profile Display Revision and new QUERY command:
    The display output from the PROFILE command has been revised to be clearer
    and easier to read.  In addition, to enable quick display of an individual
    setting, a new QUERY (Q) command is available to display individual
    settings.

  Profile PAGE Support:
    A new Profile option - PAGE - is available for use when the EOL=AUTO or
    EOL=AUTONL setting is active.   These EOL settings provide an automatic page
    formatting cleanup when Editing/Browsing SYSOUT print files.   The PAGE
    option extends this support so that the screen display will show only the
    lines for a single Page at a time.  Short print pages will display short
    (aligned at the top of the screen with blank space at the bottom), and will
    not be followed by lines from the next page.


  User-defined Aliases for Primary Commands:
    You can now define alias names for primary commands (either primary edit
    command or File Manager primary commands) by defining them with the SET
    command.

Line-command changes
--------------------

  DLMS support converted to WORD support:
    Previously, the DLMS command required you to determine all possible
    characters which were considered to be non-word delimiter characters.  That
    required specifying a long list of non-alphabetic characters, and if you
    missed something, "word" strings might not be recognized the way you
    wanted.   Version 7.0 has reversed this whole process.  The DLMS command is
    gone, replaced by a new WORD Line command.  So, instead of trying to define
    a word string by what it's not (that is, "not a delimiter") you now just
    define was a word IS.  This serves basically the same purpose, but is much
    simpler to understand, and more reliable to set up.   See Working with Word
    and Delimiter Characters for details.

File Manager changes

  New File Manager commands for Open File List:
    When displaying the Open Files file list, the File Manager will now accept
    the following line commands which will be processed against the selected
    Open File tab:
      END to terminate the Edit/Browse
      SAVE to save the tabs data
      CAN to Cancel the Edit/Browse session
      DEL to issue a CANCEL DELETE for the session
      PUR to issue a CANCEL PURGE against the session

  Extended File Pattern Support:
    File Patterns used in File Manager may now include exclusion masks in
    concert with normal inclusion masks to better support custom file lists.
    See Working with File Manager for details.

  MAKELIST Improvements:
    The MAKELIST command now supports REPLACE and APPEND operands.   This allows
    for replacement of the contents of existing file lists and alternatively, to
    merge the current list of files with an existing FILELIST, and also acts to
    prevent inadvertent overwriting of an existing file list.

Other changes
-------------

  File Last Modified Date/Time Display:
    When the cursor is not located in the data area or on a line-command field,
    the current file's last-modified date and time (when lasted saved to disk)
    will be displayed in the Status Bar box normally used for Line/Column
    display.

  Alternating Screen Background:
    File Manager has, for a while, used alternating background colors to assist
    in maintaining your eye's horizontal position when browsing lists.
    This feature has now been extended to the Edit and Browse screens as well.
    The specific color used for the alternate background is now a
    user-selectable option under Options => Screen.  The Color SCHEME statement
    in colorize AUTO files has also been extended to allow specification of this
    alternate color.

  Cross-hair Cursor Option:
    You may now request a full cross-hair cursor, like the hardware option on
    the later 3270 terminals.   This option draws faint, full height/width lines
    on the screen to intersect at the cursor location.  See Options -> Screen
    for instructions on activating this feature.



Between 6.2.3060 and 6.2.3061 (Mar 02/2013)
===========================================

  * Fixed loss of mousewheel control if a CANCEL out of the Options dialog is
    performed rather than a DONE exit.

  * Corrected handling of SET command with no operands.  It was not opening
    an Edit of all SET variables as it should.

  * Corrected loss of colorize support if running with STATE OFF.


Between 6.1.3024 and 6.2.3060 (Mar 01/2013)
===========================================

  PRIMARY COMMANDS
  ----------------

  * The keywords PREFIX and SUFFIX may now also be abbreviated as PFX and SFX.

  * A new Profile option, MINLEN, defines the minimum length for lines in a
    file.  When MINLEN is greater than zero, whenever the file is edited and
    lines are inserted, modified or copied from the clipboard or from another
    file, the minimum line length will be enforced, by blank-padding any lines
    that are shorter than MINLEN characters.  One reason to use a MINLEN value
    greater than zero is to avoid the existence of zero-length lines, which can
    create certain issues with FIND and CHANGE pictures.

  * The SWAP primary command, which accepts the operands PREV, NEXT and PRIOR,
    now additionally accepts FIRST, LAST, HOME and LIST.  SWAP FIRST will select
    the leftmost file tab.  SWAP LAST will select the rightmost file tab.  SWAP
    HOME will select the File Manager tab.  SWAP LIST will switch to File
    Manager and display the Open FILELIST from which you can choose a tab.

  * The OPTIONS primary command now accepts an optional keyword to select a
    specific tab within the Options Dialog.  The keyword can be used to select
    the General, File Manager, Submit, Screen, Mouse or Keyboard tab.  If this
    new operand is omitted, the General tab is displayed as was done previously.

  * A change Picture of P'!' copies the entire found-string as-is.  Now, you can
    also copy the entire found-string and convert the value to upper or lower
    case.  A change Picture of P'!>' copies a found-string of any length and
    converts it to upper case.  A change Picture of P'!<' copies a found-string
    of any length and converts it to lower case.  If desired, these new Picture
    codes can be shortened using the extended Ansi characters P'' for P'!>',
    and P'' for P'!<'.

  * When the =X command followed the CANCEL command, as in CANCEL;=X it now
    operates correctly.  This resolves a prior command parsing issue that
    prevented such command usage from working properly.

  * The LOCATE primary command now accepts a keyword of ALL.  When ALL is used,
    LOCATE does not "locate" any specific line, but is used for the side effect
    of un-excluding excluded lines that meet the the 'condition' described in
    the LOCATE command, such as CHANGE, LABEL or RED.  In addition, the MX
    keyword can be combined with ALL to perform the opposite action, that of
    excluding non-excluded lines that have a given condition.

  * When the BOUNDS primary command is provided a single numeric operand, it is
    taken to be the righthand column boundary, and the lefthand column boundary
    is assumed to be 1.  So, a command of BOUNDS 10 is now legal, and has the
    same effect as BOUNDS 1 10.

  * The CUT primary command now takes a new additional keyword of RAW, which
    will copy one or more lines to the clipboard without an End of Line
    terminator stored for any of the lines, comparable to what the new keyboard
    functions (CopyRaw) and (CopyPasteRaw) do.  Using CUT RAW, it is possible to
    copy a block of lines and have them treated as one long line of text, which
    could then be pasted into an external text editor program such as Notepad,
    which could then treat that block as one continuous flowing paragraph of
    text.


  LINE COMMANDS
  -------------

  * If a numeric-only value is entered into the line command area, it will be
    removed, and the original sequence number will be restored.  Previously, if
    a numeric-only value were entered by mistake, it would not be treated as an
    error, but it would not get deleted either, requiring the user to erase it
    manually.

  * The Text Split line command TS will now accept a line count of 0.  For the
    TS command, the 'n' value represents the number of blank lines inserted, so
    that TS0 means you can split a line without inserting any blank lines in the
    middle of the line you just split.  In addition, a new line command called
    Text Break (TB and TBB) will allow insertion of permanent blank lines (not
    the temporary blank/MASK lines used by TS).  The block mode TBB line command
    may be used to split multiple lines in the same place all at once.  Like TS,
    TB and TBB will accept an 'n' value of 0.

  * A new Text Margin line command, TM and TMM, may be used to reformat one or
    more paragraphs of text, in a manner similar to that of the Text Flow line
    command TF/TFF, except that the operation of TM/TMM is simpler, is less
    sensitive to any non-default BOUNDS settings that might be in effect, and
    will not encounter the types of conflicts with BOUNDS that sometimes occurs
    when using TF/TFF.

  * The Text Flow line command TF/TFF, and the new Text Margin line command
    TM/TMM, will break lines based on 'words' being delimited by blanks or by
    the beginning and/or end of a line.  Previously, SPFLite took into account
    the "Normal characters for P'.' picture literals" (as defined on the Global
    Options/General dialog) to help determine how to break lines apart into
    words; this approach caused problems at times.  The new method is simpler,
    more reliable, and easier to understand.

  * A new Text Selection line command T/TT may be used to select large amounts
    of text for use with keyboard primitive commands that need such defined
    areas of text, such as (PenGreen).  This can be useful in cases where the
    area that needs to be selected is so large that mouse selection or the use
    of shift/arrow keys is not possible or practical.

    Note: The new T/TT command has nothing to do with a prior usage of T/TT,
    which meant, "Take Lines".  That old T/TT line command was removed, as of
    the 6.0 version of SPFLite.  The old usage for T/TT has been superseded by
    more conventional C/CC blocks.

  * The Pad to Length line command PL will now accept a special modifier of
    / or \.  When used in this way, a command of PL/ will pad all following
    lines to a minimum length of 1; PL\ will do the same to preceding lines.
    Placing PL/ on line 1 of a file can be used to ensure that all lines in the
    file have a minimum line length of 1; that is, it is a quick way to ensure
    there are no zero-length lines in the file.


  FILE MANAGER
  ------------

  * A new Global Options tab is available for the File Manager.  This gathers in
    one place all global options relating to the FM, which makes them easier to
    find and modify as needed, rather than having these options associated with
    the General options tab, as was done previously.

  * In File Manager, if an FM line command of the form 'ALL cmd' is entered on
    a FILELIST line, the 'cmd' is applied to every file named in the FILELIST.
    For example, ALL E will open every file for editing that is named in the
    FILELIST, and ALL M will open a Multi Edit session utilizing every file that
    is named in the FILELIST.


  OTHER CHANGES
  -------------

  * Further enhancements to high overhead code areas sensitive to handling large
    files.  Improvements were made in the line insertion / deletion handling as
    well as the saving of data for UNDO support.

  * SPFLite will respect the Read Only attribute of a file.  If an attempt is
    made to EDIT such a file, SPFLite will open the file in BROWSE mode
    instead, and issue a warning message, to prevent inadvertent modification
    of the Read Only file.

  * If enabled by a new General Option checkbox, you can now highlight (select)
    a 2D (multi-line) block of text without using the Shift, Ctrl or Alt keys in
    combination with mouse movement.

  * To prevent users familiar with IBM ISPF from creating invalid line commands
    in KEYMAP, an attempt to define a key with a line command like :R will
    result in a warning popup message advising the user that the command has
    been automatically converted to the SPFLite-compatible equivalent format
    of {R}.

  * You now have finer control on how you are notified of a change to a file
    being edited by SPFLite when it is also modified from an outside source.
    You can continue to be always notified of outside modifications, or to only
    be notified if the file is in an EDIT session but not in a BROWSE session,
    or to not be notified at all.  This control can be set on a permanent,
    global basis or can be temporarily altered as needed.

  * New keyboard functions (CopyRaw) and (CopyPasteRaw) will copy text without
    an End of Line terminator stored.  This can be important if you copy text
    inside of SPFLite and then paste it to an application outside of SPFLite.
    In addition, the CUT primary command will take a new additional keyword of
    RAW which supports a similar capability.

  * Correct a KEYMAP bug, in which a key mapping that defaulted to (Passthru)
    was not getting restored to (PassThru) if it had been mapped to some other
    non-default setting and then erased later.

  * Correct a timing error in UNDO handling when several files are opened
    in rapid succession (as on program startup with a list of previously open
    files).  The error caused diagnostic popup boxes to appear.

  * New options in specifying AUTO colorization file settings.  Previously, the
    non-data areas of the screen (Headings, command line, line numbers etc.)
    were drawn using your normal screen colors.   This sometimes resulted in
    unworkable combinations.  You may now set the color schemes for these
    areas with the new NORMHI, NORMLO, LINEHI and LINELO keywords.


Between 6.1.3004 and 6.1.3011 (Jan 11/2013)
===========================================

  * Correct a long standing bug (since V5.0) which could cause unpredictable
    crashes and/or loops when doing a SAVE (or AUTOSAVE during END processing).
    This only occurred for long running SPFLite sessions which had performed
    numerous file edits/saves.

  * Line command parsing was not correctly recognizing associated primary
    commands if the command line was built using =SET variables.  This is now
    supported.


Between 6.1.2325 and 6.1.3004 (Jan  4/2013)
===========================================

  * The filename operand on the command line may now specify a wild-card file
    specification to request a filtered display of the named folder in the
    initial File Manager display.  e.g. SPFLite C:\Users\Me\Folder\*.BAT

    In addition a simple 'name' as this operand, which also matches an existing
    FILELIST, will be taken as a request for an initial File Manager display of
    the named FILELIST.

  * File Manager will now highlight the line command area where the current
    cursor is located similarly to the way an edit tab highlights the line
    number.  This will make it easier to spot an underline cursor amongst the
    _______ line command fill characters.

  * Performance improvement to the internal module tracing used by crash/loop
    detection reporting.

  * Performance improvements to the loading of large files as well as
    improvements to deleting large line ranges.

  * A detected loop will now offer the option to simply ignore and continue
    execution rather than continue termination. As well, suppression of loop
    detection was added to some additional potential long-running processes.

  * An EDIT request for a non-existent file will now report the error and then
    open it as newly created zero length file.

  * A new macro variable ~V(varname) has been created to allow substitution of
    data from the System Environment variables. e.g. you could fetch the
    system command processor name with ~V(COMSPEC)

  * Correct error which prevented the File Manager LOCATE command from working.

  * Correct error in saving some Options settings.

  * Correct error in handling the SET xxx OFF command.

  * Correct error in UNDO handling of large files.


Between 6.0.2319 and 6.1.2325 (Nov 20/2012)
===========================================

  * Correct saving of File Manager Scroll Amount setting.

  * Correct screen width handling with certain fonts. Calculation error could
    cause width to 'creep' larger with every SPFLite startup.



Between 6.0.2317 and 6.1.2319 (Nov 14/2012)
===========================================

Enhancements
------------

  * Correct broken RFIND command and the REVERSE RFIND option.


Between 6.0.2184 and 6.1.2317 (Nov 12/2012)
===========================================

Enhancements
------------

  * New primary commands SPLIT and JOIN are available to automate splitting
    and joining of lines based on string searches.  An extensive tutorial
    explains these new features.

  * FTP support has been added to File Manager.  You can now edit and browse
    files located on a remote FTP server just as you would do for local files
    and directories.

  * File Manager now contains two additional navigation lines.  A "Recent
    Paths" line which is like the "Recent Files" but for paths.  As well, an
    "Open Files" is present to display files currently open in tabs.  This is
    useful when many tabs are open and not all tab headers are visible due to
    horizontal scrolling of the tab headers.  The "Recent FILELIST" has been
    renamed to the "Recent Files FILELIST".

  * When File Manager lists are created from a FILELIST, you may now also
    specify a File Type mask to selectively display only certain file types.

  * When a file list is created using the MAKELIST command with the SYM option,
    the format of the resulting symbolic file list now causes the file names to
    be displayed in a shorter format without the full path-name qualification.
    This makes the list of files easier to read.

  * The File Manager line command area has been expanded to allow for future
    enhancements to line commands and for commands longer than one letter.
    Several existing commands have been modified to utilize the additional
    line command size.

  * A new FIND command in File Manager support searches for filenames based on
    any string or substring within a path name or file name.

  * FILELIST maintenance functions have been enhanced to better handle the
    addition, removal and rename of filenames in multiple FILELISTs.  This is
    done to prevent inconsistencies when the same file appears in more than one
    FILELIST.

  * Commands initiated by using a Command key (like CHANGE ABC DEF started via
    an RFIND command key) will now be captured in the command stack for use by
    the RETRIEVE/CRETRIEV commands.  This means if you start a FIND or CHANGE
    using RFIND/RCHANGE (usually the F5 or F6 keys), you can retrieve the
    original FIND/CHANGE or other command and run it again.

  * Text marking and Copy/Cut functions may now be performed on the Primary
    Command line as well as in the normal text area, using the shift-Arrows keys
    or the mouse.  This can be useful when you need to paste strings or file
    names into the command area.

  * A new Primary command MARK ON/OFF allows you to suppress the display of MARK
    lines without actually altering the MARK line definition itself.  This is
    similar to the way TABS ON/OFF suppresses tabbing without altering the
    location of the tab locations.

  * CHANGE now supports a new operand, TRUNC, which will cause all remaining
    characters on the line following the new change string to be deleted.

  * A Cancel button has been added to the Options dialog, so you can exit
    without saving any changes if desired.

  * New line shift commands [[ and ]] have been added, which are referred to as
    Indent Shifts, since they shift in terms of INDENT LEVELS.  The size of an
    indent level is determined by the following new item.

  * A new Options -> General entry has been added to allow changing the default
    number of columns to be shifted by the shift line commands (( )) << >> [[
    and ]].

  * The text string keyboard primitive, like [string], when used for creating
    repetitive string values, can now be coded more simply.  The new coding
    also will execute significantly faster.  To generate 20 * asterisks, for
    example, rather than coding [********************] you can achieve the same
    effect by specifying (20:[*]).

  * The TF line command (Text Flow) has been extended for use as the block mode
    command TFF, so that multiple paragraphs can be formatted in a single step.

  * PowerType has been enhanced with the addition of faint vertical lines at the
    cursor column, to better show the cursor location on all the lines included
    in the PowerType process.

  * The SET command will now support PUSH and POP options for the variables.
    The PUSH option will allow macros to temporarily adjust SET variables, and
    then restore the previous value with POP.

  * Private clipboards have been expanded from a fixed list of ten (0 thru 9) to
    an unlimited number of Named Private Clipboards.  A Named Private Clipboard
    can be accessed from primary commands or by new extensions to keyboard
    functions, without involving the normal Windows clipboard as an intermediary
    holding area.

  * The ISPF MASK line command is now supported.

  * Support has been added for "Virtual Highlighting Pens", which allow you to
    highlight text areas similar to how felt highlighting pens are used on paper
    listings.   Four highlight colors are available, and highlighting is
    persistent across edit sessions when STATE saving is enabled.  The exact
    color palette that is displayed by these Virtual Highlighting Pens may be
    tailored to any desired color via the Screen Options dialog.

  * The text SWAP function has been extended to support blocks of text in
    addition to single text line selections.

  * Two new keyboard primitives (DataInsert) and (DataDelete) will now support
    character insertion and deletion which attempts to maintain data column
    alignment when present, in a manner similar to the way a CHANGE command
    performs the same action when FIND / CHANGE strings are of different
    lengths and the changed strings have spans of spaces next to them.

Bug Fixes
---------

  * Correction to COPY command when copying into an (Empty) tab with no A/B line
    command entered. It was basically ignoring the command instead of inserting
    after the Top Of Dataset line.

  * Relax filtering of folders in File Manager so that Hidden and System folders
    will now be processed.

  * Correct error in Line command parsing which could result in a permanent
    loop.

  * Correct error in STATE load of files with labels and/or tags during a COPY
    command.

  * Correct scrolling when an incomplete line command group was present. Also
    remove a duplicate call to an attention routine, pure wasted activity.


Between 6.0.2181 and 6.0.2184
=============================

  * Correct error in Line command processing which could result in false errors
    of "Pending command" following an otherwise perfectly successful line
    command.

  * Correct another error in Line command processing which could trigger a
    variety of false validation errors.


Between 6.0.2096 and 6.0.2181
=============================

Enhancements
____________

  * Finally re-write line command processing so that the need for the UU and TT
    line commands is removed.  All places where UU/TT were used previously will
    now accept the CC/MM (sometimes HH) line commands as equivalents.  This
    returns the use of CC/MM to old favorites such as CUT, CREATE, REPLACE and
    PRINT.

  * Alter UNDO processing so that large files do not cause performance delays
    when creating the UNDO checkpoints.

  * Also to assist large file performance issues, an optional, alternate line
    numbering technique is available.  This method avoids the need for
    frequently renumbering ALL lines in the Edit session.  The downside of this
    is that the visible line numbers are no longer equal to their 'physical'
    line number.  All functions that use these visible line numbers continue to
    work as usual, no differences whatsoever.

    However, if you prefer line numbers = to physical line numbers, a setting
    under Options -> General allows you to specify a file size, in lines, under
    which the old method of numbering is to be used. Setting this value to a
    very large number (e.g 999999) will effectively turn off this new numbering.

  * Mark SPFLite as UAC aware.  When editing files under Vista or Windows 7/8,
    this will prevent Windows from doing UAC Virtualization (AKA Data
    Redirection) and NOT writing the file into it's original location.

    In simple terms this means editing files in Windows protected folders (e.g.
    c:\Program Files\) will not report successful saving, while actually doing
    the save into a C:\Users\.... folder.

    Instead, you will receive a failure message of "File is in use or
    protected".  And you will need to run SPFLite as an Administrator to
    properly save the file in it's protected location.

  * Allow REPLACE command to be used when Browsing a file.

  * When multiple files are re-opened at startup, the initial display will now
    be set to the tab which was active when SPFLite was shut down.

  * Add the current BNDS setting to the status bar.

  * Alter File Watch handling.  If SPFLite does not have the focus when a file
    has been modified externally, it will not report the change till the tab for
    the affected file is given control.

  * For simple cursor left/right functions, make screen column 7 (between the
    line number and the text) into an Auto-Skip type field.

  * There is now a new Global option for BROWSE.  You may now request a warning
    at END time if the Browse session has modified the data.  It will allow you
    to return to Browse and use CREATE or REPLACE to save the data.  Sometimes
    it is too easy to forget you are in Browse, make changes and then lose
    them without warning when END is entered.   See Options => General for the
    new setting.

Corrections
___________

  * Correction to SAVEALL.  It was not properly resetting the Tab Title colors
    to indicate the modified status.

  * Correction to mouse handling.  Incorrect handling of middle mouse button
    clicks could cause mouse-wheel scrolling to be ignored.

  * Correction to EOL command parsing, and validation during file load.

  * Ensure the Options -> Submit -> Working directory does not end with a "\"
    character, remove it if present.

  * Correct SUBMIT handling of filenames that require quotes (embedded blanks).
    This was not working when the command itself was a quoted type.

  * Correct INI value handling of quoted strings to prevent the Windows API
    from inadvertently removing the outer quotes.

  * Correct COPY/PASTE -> BB/BB range when the range occurs right at the top of
    the file.

  * Correct MM -> Overlay type line command combinations which were failing to
    mark the file as being modified.

  * Improve performance in altering line labels and tags.

  * Correct error in UC line command.   It was basically doing nothing if
    active BNDS were set.

  * Correct the display of the 3rd PFKSHOW line, it was overlaying the 2nd line.

  * When in PowerType mode, prevent a mouse click from moving the cursor off
    the PowerType model line.

  * Alter handling of 'Illogical Line Command Group' error so that text
    scrolling is permitted.

  * Correct RCHANGE so it will not proceed unless the most recent search
    function was actually successful.   Previously it was re-using results from
    the last successful search even if the most recent search failed.

  * Correct mouse scrolling on the FM screen.  It was not properly going to the
    last line when FM Help lines were being displayed at the bottom of the
    screen.

  * Ensure CREATE and REPLACE commands update the RECENT FILELIST.  And if the
    RECENT FILELIST is actively displayed in FM tab, refresh the display to
    include the new filename.

  * Correct loading of RECFM F files when saved with an EOL value other than
    NONE.  The deblocking will take into account the length of the EOL
    delimiters.

  * Correct cursor vertical scrolling when in HIDE mode.

  * Correct Left Data Shift ( << or < ) when a word exists at the left boundary
    separated by only one blank from other text in the bounded area.


Between 6.0.2080 and 6.0.2096
=============================

  * FILTER functionality has been enhanced to allow filters to perform actions
    beyond simply modifying text lines and returning them.   Filters now can
    perform customized search functions and can, like the FIND command, cause
    scrolling to a desired line and cursor positioning and hi-lighting of text
    strings.

    Filters can now also act as summarization tools.  e.g. performing some
    calculation based on the input lines, and insertion elsewhere of new text
    lines containing the calculation results.  Think like a SUM function that
    inserts a Total line.

  * Colorize will now properly handle multiple /* */ comment strings on a
    single line.

  * Correct error in SORT. It was incorrectly only selecting input lines
    located from the top displayed screen line onward instead of selecting from
    ALL lines.

  * If the SOURCE format is changed while active Edit data exists, a warning
    will be issued to remind users to SAVE the current data immediately to
    prevent problems reloading in the future.

  * Alter the default key mapping for the keypad, for New users only, to mimic
    the normal, printed, non-Numlock mode key labels.   i.e. Home, End, PgUp,
    PgDn etc.

  * Correct the AUTOSAVE default for any Initial Profile settings to AUTOSAVE
    ON PROMPT.

  * When a Normal or Shifted version of a key in KEYMAP is nulled (""), it
    will be set to (Passthru) rather than (Null) as this is the normal desired
    setting. Also, (Passthru) can no longer be accidentally combined with any
    other key settings.

  * Correct error in (Tab) primitive when display is in Hex mode.

  * Correct handling of columns during a CHANGE command.

  * Correct error in TF line command if a right boundary is specified which is
    smaller than the line indent value. Also correct handling when a long 'word'
    is actually bigger than the left/right bounds allow.

  * Correct error in TAG command syntax checking.

  * Correct action of LOCATE command when a pending line command state exists.

  * If START NEW is set and the .START line is in excluded state at file load
    time, the .START line will be removed from excluded status.

  * Correct cursor positioning in File Manager to properly remain on the last
    line item selected.

  * Correct error in PROF NEW which did not properly use the specified
    profile name.


Between 5.0.1270 and 6.0.2080
=============================


 Major new Functions / Facilities

  * You can now perform Multi-Edit sessions: the ability to edit multiple files,
    at the same time, in the same edit tab.  You begin a Multi-Edit session by
    selecting multiple files from a File Manager list, using the M line command
    on each desired file and then pressing Enter after all files have been
    selected.  When you SAVE or END a multi-edit session, every file in the
    session will be saved at the same time.  See "Working with Multi-Edit
    Sessions" in the Help file for more information.

  * File Manager now supports named collections of files, and refers to these
    collections as FILELISTS.  A FILELIST is itself a text file containing a
    list of file names of interest to you.  A FILELIST is retained between
    SPFLite sessions.  There are a number of pre-defined FILELIST names, and
    you may also create your own named FILELISTs as needed.  There is a RECENT
    list, having the most recently opened files (up to a user-specified maximum
    number).  There is a standard FAVORITE list of files you want to be
    remembered as favorites, and you can create you own private, named favorites
    as well.  For example, you can create a "Project" FILELIST containing all
    files for some project, even if these files reside in different folders.

  * The new primary command SUBMIT provides the ability to submit an edit file
    to an external process (which may be an executable program or batch file) in
    a manner similar to the ISPF SUBMIT command.  The facility is flexible
    enough to be usable in a wide variety of applications.  It is expected that
    a principle use of the SUBMIT command will be to submit jobs for execution
    on mainframe systems operating under control of the Hercules emulator
    program.  The SPFLite 6.0 installation includes the utility program
    SPFSUBMIT.EXE which may be used to submit jobs from SPFLite to a Hercules
    emulated card reader device using Socket I/O.  SUBMIT can be issued from an
    Edit, Browse or Clipboard session.

  * A new primary command FILTER allows a range of lines to be filtered through
    an external process and then returned to the edit file.  This allows the
    user to apply data transformations to a file using any desired utility
    program, without leaving the SPFLite edit session.  A sample filter program,
    ReverseLines, has been included with SPFLite, to give you an example of what
    you might do with filters.  This new function effectively now allows users
    to code macros in any scripting language which allows use of re-directed
    Input/Output or named input/output files.

  * A new edit primary command PTYPE allows Power Typing, a way to perform
    simultaneous editing multiple lines of text in parallel.(Some editors refer
    to this as "column mode editing".)  A number of keyboard primitive commands
    have been added, and enhanced, to support Power Typing.  See the Help
    article, Working with Power Typing Mode, for more information.

  * A new primary Find in Files command FF, only available for use in File
    Manager, provides the ability to search through a list of files for the
    presence (or absence) of a particular string.  The operation will return a
    list of the files which match the search criteria.  The list can be used to
    initiate Edit/Browse of those files, or to use as the basis for further
    searches of other different string criteria.  A Find in Files search returns
    a FILELIST, for which you can perform any commands that can be done on any
    FILELIST.

  * NOTE lines are now supported.  NOTE lines are non-data text lines
    that may contain any desired user comments.  NOTE lines are not part of the
    data file per se, and do not have line numbers.  New, blank NOTE lines are
    created with the NOTE line command.  Data lines can be Made into Notes using
    the MN line command, and note lines can be Made into Data lines with the MD
    line command.  You can also convert the special lines that appear in a
    PROFILE display into NOTE lines or data lines.  See the Help article,
    Working with Notes, for more information.


 New and Enhanced Primary Commands

  * The CANCEL primary command now accepts two new operands, DELETE (DEL) or
    PURGE.  They will, after terminating the Edit, cause the underlying file to
    be deleted (sent to the Recycle Bin if that option activated) or purged
    (bypassing the Recycle Bin, even if that option is enabled).

  * A new command START, supports the PROFILE option which allows you to control
    how a file is positioned when opened.  You can choose FIRST (top of file);
    LAST (bottom of file); USER (position to a user entered label of .START);
    NEW (like USER, but the .START label is always moved to the last line on
    file on close); or OFF (effectively like FIRST).  It is expected that START
    NEW will be useful in viewing SYSOUT files, possibly in conjunction with the
    EOL AUTO feature.

  * New LOCATE options, FIND and CHANGE, will locate lines which have been
    previously changed by a FIND, CHANGE or similar command.  All other LOCATE
    options such as FIRST, LAST etc.  are supported as usual.  In addition, a
    new keyword CURRENT, abbreviated as CURR) may be used with LOCATE FIND or
    LOCATE CHG to locate the line that was most recently found or changed.
    LOCATE LONG allows lines to be found that exceed a size operand or exceed
    the LRECL value (when not zero), and LOCATE SIZE locates lines that are
    exactly a certain length.  LOCATE NOT LONG and LOCATE NOT SIZE are also
    allowed.

  * The primary commands that change the exclusion status are now "unified".
    This means that EXCLUDE, FLIP, SHOW, NEXCLUDE, NSHOW and NFLIP all have the
    same underlying syntax and take the same operands as EXCLUDE does, including
    the optional string argument.  As a result of this change, FLIP,  which used
    to apply to all lines by default, now requires the ALL keyword for this
    action to occur.

  * The SORT primary command now performs a "stable" sorting operation; this
    maintains the original ordering of data lines when the sort keys are
    considered equal.

  * FIND and CHANGE can now utilize regular-expression search-strings when the
    search direction is specified as LAST or PREV.  When this is done, the
    search is limited to the left-most only occurrence of the search string.
    Additionally, there are now no restrictions to using PREV, LAST, PREFIX or
    SUFFIX with Picture search strings, which now also performs better.

  * A new primary command EXIT or =X allows SPFLite to be closed, which is
    functionally the same as clicking the X button in the upper-right corner of
    the SPFLite window.  The command =X is an abbreviation for EXIT.

  * A new edit primary command RENAME allows the currently-edited file to be
    renamed while being edited.  When issued, RENAME will cause a Rename popup
    to be displayed, which asks for a new file name.

  * A new primary command RELOAD will discard any unsaved changes in the current
    edit file and then reload the file from its current contents on disk.  If
    any unsaved changes exist, a popup will ask for confirmation of the Reload.

  * FIND, CHANGE and similar commands will now report the number of lines in
    which a string is found or changed, in addition to the number of times the
    string itself is found.

  * PRESERVE C.  New option C to PRESERVE command causes trailing blanks to be
    retained except when the last non-blank character on the line is a \
    backslash.  This is intended for use in C-like languages that use \ for line
    continuation and do not allow blanks to follow it.

  * As a companion to the UNDO command, there is now a REDO command.  Sometimes
    when doing repeated UNDO commands to reach a previous edit status, it is
    easy to UNDO more than intended.  REDO allows you to reapply changes,
    effectively reversing the UNDO.

  * A new TAG option of SET operates much like TAG ON, except that lines not
    eligible to have the new tag assigned will have any old tag cleared.  This
    allows a line range to get a new tag without the need to pre-clear the line
    range of old tags beforehand.

  * When the DELETE command is used to delete the entire edit file by using the
    ALL option, DELETE cannot be abbreviated as DEL.  This is a safeguard to
    prevent deleting the entire file by accident, in case an X|NX option or line
    labels should have been used but were forgotten.

  * PROFILE EDIT profile-name allows editing of any existing Profile, either
    from an Edit session or from the File Manager.  As well, the PROFILE NEW
    profile-name may be issued either from an Edit session or from the File
    Manager.  For both commands, the SPFLite Profile Editor window is displayed
    so that the Profile information can be created or changed.

  * A new primary command COMPRESS can be used to compress repetitive spans of
    strings down to single occurrences.

  * A new REVERSE operand on RFIND, RLOCFIND and RLOC allows repeated FIND or
    LOCATE operations to be done in the direction opposite to the initial
    direction.  This allow you to change your mind as to the search direction
    without having to re-issue the original FIND or LOCATE command.

  * You can now perform a virtual save operation during the course of editing a
    file, using the new primary command VSAVE.  A virtual save will save the
    edit session to a temporary file, without committing the edit changes to the
    permanent file you started editing.  If you are editing a critical file and
    experience a system outage, the VSAVE files can be used to resume editing,
    while if the edit ends normally, the VSAVE files are automatically deleted.

  * Duplicate adjacent lines can now be deleted with the new primary command
    DELETE DUP.  DUP is now a reserved word on the DELETE command, so if you
    wish to delete lines that contain a literal of DUP it must be quoted like
    'DUP'.

  * The new LEFT and RIGHT operands of FIND and CHANGE allow strings to be
    searched for and changed at most once per line.  Either the left-most or
    right-most string is found on a line, and any additional occurrences of the
    same string are ignored.

  * A new primary command SAVEALL saves every open edit file.  SAVEALL by
    itself will unconditionally save all edit files, whether currently in a
    modified state or not.  SAVEALL COND will save all edit files that are in  a
    modified state, but unmodified edit files will not be saved.  SAVEALL will
    not save files opened in browse mode, even if such browsed files are in a
    temporarily modified state.

  * The COPY primary command now supports the full ISPF syntax for COPY,
    including BEFORE and AFTER keywords and start/end line numbers for copied
    file.  The copied lines may replace an existing block of line if they are
    marked as a UU or TT block, if the BEFORE / AFTER option is omitted.

  * The PASTE command now also permits the BEFORE/AFTER option as well as ERASE
    to clear the clipboard after the operation.

  * Enhancements have been made to primary command RETRIEVE processing.  The
    RETRIEVE command stack will now hold the last 50 commands.  A new RETF
    command will retrieve commands in the forward direction, as opposed to the
    'backward' direction done by RETRIEVE; the command stack can be cleared by
    RESET RETRIEVE.

  * The APPEND primary command will insert a string at the end of every line in
    a line range.  The complementary PREPEND primary command will insert a
    string in column 1 of every line in a line range.

  * The PRINT SETUP command can now define "formatted printing" of pages with
    page numbers, headers and footers, file names, and other variable
    information inserted.

 New and Enhanced Line Commands

  * The =TABS> line may now use a + character as a "repeating virtual tab"
    position.  If used, the + may appear only once as the last code on the
    =TABS> line, and must be preceded by an * tab code.  Using the distance in
    columns between the + code and the last * code that precedes it, virtual
    tab positions are implied indefinitely to the right, starting in the column
    where the + appears.

  * The K (Keep) line command modifier, and the -/+ (post-exclude and
    post-unexclude) line command modifier, can now coexist for the line commands
    A, B, C/CC, O/OO, and OR/ORR.   On CC, OO and ORR the block-header lines
    themselves will not be excluded or unexcluded by the -/+ modifier, but only
    the lines within those blocks.

  * The MARK line command now allows codes < and > to more accurately place the
    column marker lines, in addition to the * code which remains available.

  * G/GG and J/JJ are now defined as physical glue and join operations that do
    not involve data trimming.  To trim data before gluing or joining, the new
    line command TG/TGG and TJ/TJJ are now supported.  Additionally, for the
    Glue commands G/GG and TG/TGG, a user-defined string can be specified to
    insert in between the glued lines, using the GLUEWITH command.

  * Two separate blocks of text may now be swapped by marking one block with
    M/MM and the other block with the new Swap line command W/WW.

  * A new Overlay/Replace line command OR/ORR is similar to the standard Overlay
    line command, but will unconditionally overlay data from the 'sending lines
    to the receiving lines.

  * New keyboard primitive functions (FindNext) and (FindPrev) will find the
    next or previous text that is currently highlighted.  These actions are
    typically performed in other text editors using the keys Ctrl-F and/or F3,
    and may be mapped in SPFLite to any desired key.


 New and Enhanced Keyboard Primitives

  * A piece of text on one line can now be swapped with another (non -
    overlapping) piece of text on the same line or on another line by using the
    new keyboard primitive function (Swap).

  * New keyboard primitive functions (Edit) and (Browse) allow you to directly
    jump into a file for editing or browsing through a highlighted a file name.
    For example, suppose Alt-E is mapped to (Edit).  Then you would highlight a
    file name and press Alt-E.  This causes that highlighted file to be opened
    up in a new Edit tab.

  * A new keyboard primitive command (ToggleHome) will toggle the position of
    the cursor between column 1 and the first non-blank character of the line.

  * The (SetInsert) and (ResetInsert) primitives have been enhanced to save the
    existing insert-mode state internally prior to changing it.  A new primitive
    called (RestoreInsert) takes the insert-mode state saved by the most recent
    (SetInsert) or (ResetInsert) and restores it.  If neither (SetInsert) nor
    (ResetInsert) have yet been performed, (RestoreInsert)  does not change the
    insert mode from its current setting.  These new and enhanced functions are
    useful in keyboard macros that need to modify the insert mode a certain way
    and then restore it to what it was previously.

  * New  keyboard primitive commands (JustifyL), (JustifyR) and (JustifyC)
    enable you to left-justify, right-justify or center (center-justify) a span
    of highlighted text.  The Justify commands act by removing spaces from one
    side of the highlighted text, and adding it to the other side of it.  When
    Power Typing mode is in effect, and a span of text is highlighted on the
    first line, these commands will apply the justification to every line in
    range of the Power Typing command.

  * A new keyboard primitive function (Ansi) will display a 16 by 16 grid of
    characters which may be used to insert any characters into the clipboard,
    including ones not currently mapped to a key.  The same display may be
    accessed in the KEYMAP window, by clicking a new button, "Show ANSI
    Character map".

  * New keyboard primitives (ScrollLeft), (ScrollRight), (ScrollUp) and
    (ScrollDown) allow the screen to be scrolled while leaving the cursor in its
    current location.

  * A new keyboard primitive (ClipClear) will clear the contents of the
    clipboard.
  * Keyboard functions can take a repetition factor so that if you
    need a function run several times, it only needs to be specified once.


 New and Enhanced Mouse Support

  * When a file tab is clicked with the right mouse button, it closes the file
    in the same way that the END command does.  The PROFILE option AUTOSAVE is
    handled in the same way as is done for END.

  * Previously, the mouse could be used to highlight a section of a single line
    (a 1-dimensional highlight) or a square block of text  (a  2-dimensional
    highlight).  Now, you must hold the Shift key when doing a 2-dimensional
    highlight, while 1-dimensional highlighting is done without the Shift.  This
    change means that 2-dimensional highlighting will not occur accidentally but
    only when intended, and makes normal highlighting easier and faster.

  * There are enhanced capabilities available with highlighted text; see the
    Help for more information.

  * You may now perform a word select by double-clicking on a word, and
    highlighted text may be deleted and replaced with new text in one step,
    which is especially useful when Insert Mode is on.

  * When you hold down the Ctrl key while using the mouse wheel, the number of
    lines or columns moved is increased by a factor of 4; this is termed Turbo
    Motion.

  * When using a 3-button mouse, the middle mouse button may now be mapped in
    the same way as the left and right buttons.  In addition to allowing use of
    all three mouse buttons, you may now use any combination of Shift, Ctrl and
    Alt, for a total of eight possible mappings for each button.  And defining
    these mouse definitions is simpler, as they are now part of the KEYMAP
    facility, meaning an easy, one-step process just like keyboard keys are
    defined.


 Cosmetic / Interface Changes

  * Previously, when a file was Saved by an END command, the normal "File Saved"
    message would never appear since the Edit tab itself was removed as part of
    END processing.  To ensure that you do receive a notification that the file
    was indeed saved, the message "File Saved" will appear in the message area
    of the status line, as a reminder that the automatic save took place.  This
    message will disappear as soon as any key is pressed.

  * When the scroll amount field is blanked out for any reason, the default
    scroll amount will be restored without an error message being displayed.

  * The File Manager has new and updated primary and line commands, and has been
    reformatted to make it more functional, easier to use, easier to read, and
    with less clutter that allows more useful information to fit on the screen.
    See the section on Working with the File Manager for complete details.

  * A change has been made in the way screen colors are applied to file tabs.
    In prior versions, the Active and Inactive tabs had both a foreground color
    and a background color option available.  With version 6.0, the background
    color is settable for both Active and Inactive tabs, but now the foreground
    color is decided based on whether the file is in a Modified or Unmodified
    state.  The former use of (M) to indicate modified status was removed.  For
    the File Manager tab, and tabs in GUI windows like SPFLite Global Options,
    the foreground text color used will be the same as the Tab Text - Unmodified
    Files color.

  * The visual spacing of messages in the multi-use status box (where "KB
    Recording" appears), and the "scroll progress bar" which appears below it,
    have been adjusted slightly so as not to overlap, so that when both are
    present the message portion is easier to read.

  * A new Option is available, Visual BEEP.  This provides a short visual
    'blink' when an error occurs that would normally trigger an Audible BEEP.
    For users that turn Audible BEEP off because it is disturbing, or for users
    that are hearing-impaired, this provides an alternative.  Audible and Visual
    BEEPs may be activated independently from each other.  As well, the audible
    BEEP is now produced as the standard Windows 'Asterisk' sound and can
    therefore be enabled, disabled and/or customized as desired through the
    "Sounds and Audio Devices" option in the Windows Control Panel.

  * The installation process for SPFLite will now add a Windows Explorer context
    menu item that says, "Open with SPFLite".  This will allow a file to be
    quickly opened by SPFLite for editing by right-clicking on the mouse.   At
    present, if you uninstall SPFLite, the uninstall process will not remove
    this context menu item; it can be manually removed by right-clicking on the
    RemoveOpenWithSPFLite.reg file and selecting Merge.

  * SPFLite will no longer steal the Windows focus back to itself when it is
    not the currently active task, and a file it is editing is modified by some
    outside application.  SPFLite will now wait to notify you about the outside
    file modifications until you again click on SPFLite to make it the active
    task.  This change makes it easier to use SPFLite collaboratively with other
    software, such as a compiler IDE or debugger, which may also have their own
    editing facilities.

  * In File Manager, the END command will now return to the parent directory, or
    to the prior FILELIST, of the currently displayed one.  The same action will
    occur if you right-click the File Manager tab.


 Performance Enhancements

  * A change was made in the way SPFLite detects and responds to keystrokes in
    Repeat mode vs non-Repeat mode.  The change allows SPFLite to process
    keystrokes more quickly and reliably, and prevents certain types of key
    combinations from being misinterpreted if typed at very high speeds.  When a
    mapped key has the Repeat checkbox left blank, the key is now acted upon
    during "key-down time" instead of during "key-up time" so there is no longer
    a latency in responding to these keys.

  * The code used when searching for Picture strings has been totally redone.
    It is now 4-5 times faster and also now allows reverse searching.  i.e.
    using the PREV or LAST operands of Find/Change.

  * Within the Key Map window, you can now jump from one of the eight various
    definitions (with or without Shift, Ctrl and/or Alt) of a key to another by
    using the Tab and Back-Tab keys.  This reduces the need to frequently switch
    between the mouse and keyboard when entering many definitions for the same
    physical key.


 Miscellaneous Changes

  * It is now possible to have deleted files either sent to the Windows Recycle
    Bin or immediately deleted, based on new CANCEL command options and new
    handling of File Manager line commands D and U.  The default action when
    files are deleted is controlled by a new global option checkbox, Delete to
    Recycle Bin.

  * Two new codes for Picture literal searches have been created; the P'%',
    which indicates the "special" characters defined in the DLMS setting; and
    P'@', which indicates all character NOT in the DLMS setting.  i.e.  the two
    types used to define a WORD in string searches.

  * As well, you can now 'escape' a character in a picture code which might be a
    defined picture code like @ by prefixing it with a \ (e.g.  P'\@') When x
    is a letter, it is matched literally including case, even when CASE T is in
    effect.

  * The new change Picture/Format code of P'!' or F'!' is used to represent the
    entire found search string value, regardless of that strings length.  The
    !  code can be used more than once, which would cause the found string value
    to be replicated as many times as there are !  codes.  To use an actual  !
    in a change Picture or Format as a literal value, it must be escaped as
    P'\!' or F'\!'.

  * You can now create SET symbols and reference them in an edit session.
    Symbols are created with the SET command or in a SET edit session, and may
    be used in primary commands with the notation =NAME.

  * The Enumerate Facility allows a selected set of columns in a range of lines
    to be enumerated, that is, sequenced starting from an initial value on the
    first line and incrementing by 1 for each subsequent line, within a fixed
    field on a set of lines.  Enumeration requires that Power Typing mode is be
    enabled, and one or more columns on the first line of the Power Typing line
    range are highlighted.  Enumerated values may be in decimal or hex and are
    unsigned.  When these conditions are true, one of the Enumerate keyboard
    primitive commands (Enum), EnumHexLc) or (EnumHexUc),  can be issued.
    Increments other than 1 can also be used.

  * A new set of End of Line profile options, EOL AUTO/AUTONL allow for
    automatic detection of  line terminations, possibly containing inconsistent
    and spurious line terminators, so that files edited across different system,
    mainframe SYSOUT files, and other inconsistently-terminated text files can
    be opened, viewed and edited in a reasonable way.  EOL AUTO/AUTONL may be
    applied to non-mainframe files as well, to handle situations where a files
    line termination is inconsistent for some reason.    A possible cause of
    this is a file shared between Windows and Unix on a network and edited with
    different editors applying different line endings.

  * SPFLite now supports Private Clipboards. Ten are provided for and are
    referred to as CB0 thru CB9.   The clipboards are Global (shared amongst
    all active Edit tabs) and are also Permanent (saved and restored between
    SPFLite sessions. These are ideal for storing a variety of boilerplate type
    text.  New keyboard primitives are available for moving clipboard data
    between the normal Windows clipboard and these new Private clipboards. These
    primitives can be easily used to create a coordinated 'set' of keyboard macros
    to access this new support.  The default keyboard definitions contain
    Copy and Paste macros set up on the 0-9 keys.


Between 5.0.1232 and 5.0.1270
=============================

  * Correct checking of PROFILE STATE.  It was being done after the check for
    the NTFS status of the drive rather than before.

  * Pending line controls (e.g. A/B) were not being correctly detected by
    primary commands like COPY issued from macros.

  * Line command processing was not properly detecting incomplete block
    commands followed by Immediate commands.

  * UU block line commands with the K (keep) modifier were not being properly
    retained following their use in a command.

  * CANCEL command could not be issued if there were line commands in 'Pending'
    status.

  * SAVE issued for a file with zero lines in it was incorrectly skipping the
    actual writing of the empty file.

  * The Tab expansion using the IMPORTTABS value was not correctly expanding
    text when only 1 character followed the Tab character.

  * A replacement EBCDIC.TXT file to alter the EBCDIC <-> ANSI translation was
    not being properly recognized during initialization.


Between 5.0.1221 and 5.0.1232
=============================

  * If a file save is done as part of closing a tab, the "File Saved" message
    will be displayed for a short time in the status bar of the next tab to be
    displayed.

  * The file extension inserted by the substitution string ~X will remain in
    normal case rather than being forced to Upper case.

  * Keyboard routines were enhanced to better handle keys flagged as
    non-repeating in keymap.  This should eliminate possible dropped keys when
    the key is a 'chorded' key.  (Like Crtl-Z,   Alt-U, etc.)

  * The horizontal scroll bar in the status line has been altered so that it
    does not interfere with character text shown in the same status bar box.

  * SPFLite can now automatically check for a new version update on a regular
    basis.  Whether to do this, and the interval to use (7 or 30 days) are
    settable now by a new option under Options -> General.  The Options tab
    also contains a button which will perform an immediate check.  The initial
    setting for this until you choose will be to never check automatically.

  * Instead of imposing a fixed key-mapping for the critical ENTER and NEWLINE
    keys, an initial install of SPFLite will provide a pop-up menu to choose
    between three suggested key mappings.  This will prevent the all too common
    problem for new users of forgetting where the ENTER key is mapped.
    Regardless of which choice is made, these settings may be modified later
    via the KEYMAP function.

  * The new commands FIND WORDS and FIND CHARS can be used to set the default
    "search context".  This is useful if you frequently search for strings on a
    WORD basis, so that the WORD operand can be omitted on FIND and CHANGE
    commands.  When the default search context is set to WORDS, a W will appear
    in the C/T indicator on the status line that shows the current CASE C/T
    mode.



Between 5.0.1208 and 5.0.1221
=============================

  * File Manager was not 'forgetting' the file list position when display
    criteria had altered.

  * RCHANGE was not reacting to a previous search if it was invoked via the
    RLOCFIND command ather than RFIND.

  * Certain combinations of keyboard primitives in a keyboard macro were
    leaving remnants of the previous cursor behind.

  * Entering a full CHANGE command and pressing RCHANGE was not being honored.

  * Tab and BackTab handling on the Top/Bottom of data lines was not being
    handled correctly.

  * Handling of the Profile option IMPORTTABS was not being done properly when
    IMPORTTABS was set to 0 to suppress tab expansion.

  * Selecting a directory name in File Manager to switch to that directory was
    not being done properly.  An embedded blank was being inserted into the
    path.  Bug introduced by build 1208 inadvertently.

  * Mapping of the KP-Enter key was not being handled correctly.

  * Possible data corruption when loading files over 128K in size.

  * If Profile STATE is ON, and the file is being saved to drive which is not
    using the NTFS file system, a warning that STATE information will not be
    saved is generated.  All other normal save activities continue as normal.

  * Add additional Icon sizes for the SPFLite5 program icon to display properly
    at different screen desktop resolutions and icon size settings.


Between 5.0.1195 and 5.0.1208
=============================

  * File Manager was not handling file masks with trailing * properly.

  * Add additional validation to BNDS setting when loading a file Profile.

  * RESET command was not always clearing previous error message text.

  * Correct handling of Enter key when NumLock is ON. (i.e. by toggling it with
    Shift-NumLock.

  * RESET was not being processed if there were outstanding line command errors.
    It should always be performed regardless of such errors.

  * Cosmetic changes to several messages.

  * Corrected handling of shutdown when modified, unsaved new files are being
    processed.

  * Pending line commands were suppressing the action of scrolling commands
    such as LOCATE, FIND etc.

  * Clarify STATE error message when file changes prevent re-establishing the
    previous STATE environment.

  * Editing of a new file type was not properly picking up the DEFAULT
    profile's parameters.  As well, new profiles will start as UNLOCKED.

  * CAPS ON processing was not being properly handled in INSERT mode.

  * Correct formatting of the PROFILE NEW dialog.  Some fields were not spaced
    properly.

  * File manager will now handle file names with leading blanks.   However, use
    of such names is discouraged as it can be very confusing.

  * Cursor performance improved during rapid cursor movement. It will now be
    much more visible than before.    Cursor also will no longer 'disappear'
    when the user has the Windows cursor blink rate set to 'Off'.

  * Altered the test for SPFLite residing on a removable drive when installed
    in 'portable' mode.  Windows basic device type API insisted that a USB
    connected hard drive was not removable.  Another API was found that acted
    more reasonably.


Between 5.0.1189 and 5.0.1195
=============================

  * FIND and CHANGE were treating quoted "*" and unquoted * operands as the
    same, they were both being treated as 'previous operand'.

  * Line commands inserted by keyboard customization settings were not being
    honored on '''''' inserted lines.

  * Documentation updated to describe keyboard customization when using non
    English keyboard which require use of the AltGr key to create national
    characters. Also corrected typo error in the Help file and Tutorial related
    to TAG handling.

  * Termination did not always provide the option to save a tabs data if the
    tab had never been saved.  i.e. was still marked as (Empty) even though
    text lines existed.

  * PASTE into an empty file did not 'clean up' an optional A/B line command
    if it had been entered.


Between 5.0.1186 and 5.0.1189
=============================

  * Keymap will no longer accept changes that leave the ENTER key undefined as
    this makes further use of SPFLite impossible.

  * Global BOUNDS or BNDS settings were not being correctly honored by Primary
    commands like FIND/CHANGE.  Boundaries were only being honored if they
    were specified on the commands themselves.

  * If specified bounds were included on a primary command, SPFLite was not
    allowing an arbitrary large value to be used for the right boundary which
    was larger than the current maximum length record.  For example, specifying
    FIND P'^' 73 1000 on a file with all records under length 100 was rejected.

  * Data entry in the Scroll amount field (upper right) was not being handled
    properly.

  * The Keypad DEL key was not functional.

  * The Keypad Enter key incorrectly had a default assigned of RCHANGE.

  * UP and DOWN commands were incorrectly calculating the new screen position
    when excluded lines were present.

  * Multiple adjacent ranges of excluded lines were not being 'collapsed' in
    to one range following a line delete command.

  * File Manager was not handling Directories with very long names if the name
    was being abbreviated to fit a narrow screen display.


Between 4.4.9 and 5.0.0
=======================

  * Support added for EBCDIC input and output files, along with the EBCDIC NL
    character X'15' as another EOL delimiter character.  In addition, you may
    now specify an LRECL value to specify that the file contains records with a
    fixed Logical RECord Length.

  * When editing EBCDIC files, conversion is done between Ansi code page MS-1252
    (used for the editor display) and EBCDIC code page 1140 for user data files.

  * When a non-zero LRECL is specified, you may also specify an EOL of NONE, to
    indicate that none of the usual end of line delimiters are being used.  The
    combination of a non-zero LRECL and EOL NONE is used to edit files that are
    a set of fixed-length records stored as a continuous stream of bytes with no
    line delimiters at all.

  * Persistent storage of the labels, tags and line exclude status between Edit
    sessions.  You can now close a file, and resume editing it at another time,
    with your file's edit session conditions restored to the same state it had
    at the time it was closed.  This feature is enabled with a new PROFILE
    option called STATE.

  * Add automatic cleanup of stray recovery files that may have been left behind
    in the event of an SPFLite crash.

  * A change was made to the naming standard for Automatic Colorization files.
    These files now have names like "type.AUTO", where "type" is the filename
    extension that defines the file's type.  Use of a "type.AUTO" Automatic
    Colorization file is enabled by a PROFILE command of HILITE AUTO ON.
    Automatic Colorization files are "linked" to to the file's PROFILE.  This
    means that when a PROFILE USE is in effect, a common colorization scheme can
    be defined for a group of related file types.  Support for the former
    PROFILE ALIAS command has been removed.

  * Allow use of temporary line labels in commands.  Temporary labels are
    .labels where the label value is a numeric line number; to reference line 10
    in this way, a temporary line label of .10 could be used.  This allows line
    ranges to be used in commands which also support column ranges (like FIND
    and CHANGE) without needing to assign some permanent labels to the lines
    just for the sake of that command and then having to delete them later.

  * New KEYMAP command and totally rewritten keyboard mapping support.  The
    whole concept of PFKs has been replaced (don't worry, it's actually
    simpler), Now, the commands you desire are actually associated with the key,
    rather than the former two-stage process of associating a keyboard key with
    a PF key, and then associating the PF key with an SPF command.  As well, the
    mapping allows for mapping of all control key combinations for the allowable
    keys (this is sometimes referred to as "chords").  There are 8 variations of
    each key allowed: Normal, Shift, Control, Alt, Shift-Control, Shift-Alt,
    Shift-Control-Alt, and Control-Alt.

    These are now easily managed by a new graphic dialog which allows you to
    click on a keyboard image to access the commands associated with each key.

    As well, support is now provided for keyboard macros.  This includes a new
    Keyboard Recording function to assist in creating these macros.  While
    Keyboard Recording is in progress, a message of "KB Recording" will appear
    on the status line.

  * Separate file option preferences for each file type.  Many formerly global
    preferences are now settable by file type.   The PREFERENCES command is now
    renamed to OPTIONS, and a new PROFILE command is used to display the file-
    oriented options.  Setting of individual PROFILE options is done via primary
    commands as in the original ISPF, such as CAPS, TABS, HILITE, etc.

  * The PFSHOW feature now allows specification of 1 to 5 lines at the bottom of
    the screen.  Only keys which have PFSHOW labels defined (via the KEYMAP
    facility) will appear in this area.  The PFSHOW screen functionality is now
    being handled as an OPTIONS|SCREEN setting, and the former PFSHOW primary
    command is no longer supported.

  * The status line is no longer optional, and now appears as a conventional
    Windows-style status line at the bottom of the screen.  The redesigned
    status area contains many new, useful fields in a concise, ease-to-read
    format.

  * The primary commands OPEN and EDIT have been swapped to have consistent
    meaning with other commands.  BROWSE starts a browse tab, EDIT starts an
    edit tab, and OPEN will now open a new instance of SPFLite.

  * The primary command CRLF has been renamed to EOL (End-Of-Line) to better
    reflect its meaning.  As well, the operands have been renamed from
    WIN/UNIX/MAC to CRLF/LF/CR to also better reflect their meaning.  Also added
    is the ability to use a user specified 1 or 2 byte hex string as the
    delimiter.  The EBCDIC NL character (X'15') is also now available, as is
    the ability to say EOL NONE to have no delimiters at all, which requires a
    specified LRECL value to delimit lines by their length alone.

  * The sort criteria for the File Manager may be quickly changed by
    left-clicking on the column headings.  If currently sorted on the clicked
    column, the sort will switch direction (a + will appear next to the column
    heading for ascending order, and - will appear for descending order).  If
    clicked on a different column, it will switch to an ascending sort on that
    column.  In addition, a new option to sort on file extension has been
    added.  As a result, the SORT type entry line at the top of the screen has
    been removed.

  * File Manager has altered the file type criteria from being a simple list of
    file types, to using the Windows standard file masking characters.  For
    example, previously you might have had criteria like txt;BAS;CPP which would
    now be entered as *.txt; *.BAS;*.CPP.   But more importantly, you can now
    enter criteria like PRJ*.C??  or *.B* to specify a much finer filtering of
    the resultant list.

  * New Keyboard Primitive commands:
      TxtHome       - Moves cursor to 1st visible data column of the current
                      line.  Like Home in a conventional editor.

      TxtNewLine    - Like NewLine, but moves cursor to the 1st visible data
                      column of the next line rather than the line number area.

      LineNo        - Moves the cursor to the line number area of the current
                      line.

      LastTab       - Tabs to the last (rightmost) tab marker.

      EndOfText     - Moves cursor to 1 past last non-blank on the line, unlike
                      EndOfLine which moves the cursor to 1 past the last
                      character on the line, blank or non-blank.

      LowerCase     - Will lower-case selected text on the screen.

      UpperCase     - Will upper-case selected text on the screen.

      TitleCase     - Will title-case selected text on the screen.

      SentenceCase  - Will sentence-case selected text on the screen.

      CutPaste      - Will act like Copy if text is selected, and if no text is
                      selected will act like Paste.

      Date          - Will Paste, at the current cursor location, the current
                      Date in your normal Windows Short format.

      Time          - Will Paste, at the current cursor location, the current
                      Time in the format hh:mm:ss AM. (12 hr format with
                      trailing AM/PM indication.

      ClipDate      - Will insert the current date, in normal Windows short
                      format, into the Clipboard.

      ClipTime      - Will insert the current time into the Clipboard in the
                      format hh:mm:ss AM (12 hr format with trailing AM/PM
                      indication).

      IsoDate       - Will Paste, at the current cursor location, the current
                      Date in ISO format YYYY-MM-DDD.

      IsoTime       - Will Paste, at the current cursor location, the current
                      Time in the format hh:mm:ss (24 hr format without AM/PM).

      ClipIsoDate   - Will insert the current date, in ISO format, into the
                      Clipboard.

      ClipIsoTime   - Will insert the current time into the Clipboard in the
                      format hh:mm:ss (24 hr format without AM/PM).

      ClipPath      - Will insert into the Clipboard the full path and
                      filename of the currently edited file.

      ClipName      - Will insert into the Clipboard the filename of the
                      currently edited file.

      SetInsert     - Will turn Insert mode ON regardless of its current
                      setting.

      ResetInsert   - Will turn Insert mode OFF regardles of its current
                      setting.

  * New key-mapping capabilities for labels and tags.  To define a key to set a
    label or tag, {.label} and {:tag} are used.  To define a key to clear a
    label or tag, {.} and {:} are used.  To define a key to toggle a label or
    tag, {..label} and {::tag} are used.

  * New line command H/HH ("Here"), which can be used as a destination for the
    line copy (C/CC) and move (M/MM) commands in much the same manner as A/B
    line commands are used.  The lines marked by H/HH will be REPLACED by the
    copied or moved lines; the lines originally marked with H/HH are deleted.

  * Two new line commands U/UU ("Use") and T/TT ("Take") may be used to specify
    line range operands to many of the Primary commands (CHANGE, CREATE, CUT,
    etc.) When a valid range has been marked with these commands, affected
    Primary commands will react as if a line range had been specified as part of
    the command itself.

    These new line commands effectively replace the use of the C/CC and M/MM
    line commands when used in conjunction with Primary commands, which now use
    U/UU in place of C/CC and use T/TT in place of M/MM commands.

    The existing C/CC and M/MM are now used exclusively to copy and move lines
    around in the edit file, and are not referenced any more by primary
    commands.

  * The Primary command line area will now scroll left/right as needed so that
    commands of any length can be entered.  Previously, if commands like FIND
    and CHANGE were entered with long text literals, it was very easy to 'run
    out of room' to enter the desired command.

  * Support for the 'K' line command modifier ("Keep").  When added to a line
    command, the command will be retained following the normal line operation.
    For example if a CK is entered on a line, and A on another, then after the
    copy of the line from the CK line to following the A line, the CK line
    command will remain in the line-command area.  All that is needed is another
    A command to repeat the Copy.  Unlike ISPF's implementation, 'kept' line
    commands are only removed by specifically blanking them, or via a RESET
    COMMAND primary command.

  * Support for two new line command modifiers, '+' and '-'.  When added to a
    line command, it requests that the lines, following the specified line
    operation, be Excluded ('-') or UnExcluded ('+') from the display.  For
    example, copying lines using a CC- /  CC pair to mark the source lines,
    will perform the Copy and then hide the lines marked by the CC commands
    as if the lines were marked with XX line commands as well.  If a CC+/CC
    pair were to be used, any excluded lines within the CC+/CC block will be
    unexcluded upon conclusion of the copy command.  When + or - is added to an
    A or B line command, the A or B itself is not changed, but the target lines
    themselves that are moved or copied After or Before that point are
    excluded (-) or unexcluded (+) as the move or copy takes place.

  * A new primary command TAG and associated enhancements to other commands now
    provide a powerful tool to locate and mark (i.e.  TAG) lines.  These
    'tagged' lines, whether contiguous or not, can now be isolated for
    processing by other commands.  Thus you are able to apply multiple criteria
    to select the lines to be processed.  For example, the following commands:

         TAG :AB ALL 'AB' 10
         CHANGE 'ONE' 'TWO' ALL :AB

    would first Tag all lines which have AB in column 10 with the Tag :AB, and
    then would change ONE to TWO on ONLY those lines previously tagged with :AB.

    Tags can be set 'en masse' via the TAG command, or manually by entering
    a Tag in the line number field. A Tag is a : followed by up to 5 characters.
    A tag is much like a line label (.HERE), except the same Tag can appear on
    any number of lines.

  * A special 'generic' tag of :ZALL can be used to reference every line having
    a line tag of any kind whatsoever regardless of tag name.  Similarly, a tag
    of :\ZALL can be used to reference every line NOT having a line tag.  :ZALL
    and :\ZALL are useful on commands such as FIND, CHANGE and EXCLUDE.

  * A label and a tag may co-exist on the same line (the label and tag are said
    to be "co-located").  When this condition exists, only the label will be
    visible in the sequence area of the affected line.  When the cursor is
    placed anywhere on the affected line, the tag name will appear below on the
    status line.  Additionally, for such lines, the blank column that normally
    appears between the sequence number field and column 1 of the data line will
    contain a : colon as a visible reminder that this line, which has a visible
    label, also has an undisplayed tag name.  If the label for this line is
    removed (in the usual way) the undisplayed tag will reappear in the sequence
    area.

  * The primitive keyboard command "(Delete)" will now delete a currently
    highlighted block of text on the screen.  This works for highlighted blocks
    having single lines and for multi-line blocks.

  * For consistency, the CUT command will now accept a REPLACE keyword even
    though this is the default if APPEND is not coded.  In addition, CUT will
    now accept the X and NX selection criteria to be used along with normal line
    range selection.

  * The CREATE and REPLACE commands may now optionally use the full range of
    line range commands, tag selection and X / NX selection when specifying
    the lines to be included.

  * The SORT command may now optionally use the full range of line range
    commands, tag selection and X / NX selection when specifying the lines to be
    included.   This means that scattered lines may be sorted independently of
    the intervening lines.  (For SORT X to operate the same as mainframe ISPF,
    it must be specified in SPFLite as SORT X DX to keep sorted lines excluded.)

    Also, new codes may be added to explicitly request a case sensitive sort (C)
    or a case insensitive sort (T).  These C or T codes may stand alone to apply
    to the entire sort, or may be combined with A or D to control individual
    sort fields.  The default for SORT's case sensitivity is the same as the
    current profile setting for the CASE option, which is also C or T.  (Note
    that the current CASE setting also appears as the letter C or T on the
    status line.)

    Former uses of Tritus SPF will notice these features and options are
    essentially the same as the Tritus SPF implementation of SORT.

  * Two new primary commands NFIND/NF and NEXCLUDE/NX.  These are effectively
    the negative versions of FIND/F and EXCLUDE/X, that is, they perform
    the 'NOT found' version of the tests that normal FIND/EXCLUDE do.  For
    example,  NFIND 'ABC' 10 will locate the 1st line that DOES NOT HAVE
    the characters ABC in column 10.   NEXCLUDE ALL 'ABC' 10 would exclude
    all lines which DO NOT HAVE the characters ABC in column 10.  In particular,
    starting from a file with no lines excluded, the command NX 'ABC' ALL will
    result in only lines containing 'ABC' still displayed. (Some editors refer
    to this capability as an ONLY function.)

  * Two new primary commands SHOW and NSHOW.  SHOW directly corresponds to
    EXCLUDE (X) with the same syntax, and NSHOW directly corresponds to NEXCLUDE
    (NX) with the same syntax.  Whereas EXCLUDE/NEXCLUDE only consider
    non-excluded lines (and based on some criteria, select lines to become
    excluded), SHOW/NSHOW only consider excluded lines, and based on some
    criteria, select lines to become un-excluded.

  * Many of the commands which support line range operands (CHANGE, CREATE,
    DELETE, EXCLUDE, FIND, FLIP, LC, NEXCLUDE, NFIND, RESET, SC, SORT, TAG, TC,
    UC) will now also support two new operands DX and MX.  These are used to
    override the normal action of line searching where a located line, if in
    excluded (X'd) state, will be unexcluded.

    The DX option (don't change exclusion) will leave the excluded status
    unchanged.  That means, previously excluded lines will remain excluded, and
    previously unexcluded lines will remain unexcluded.

    The MX option (make excluded) will force the line into excluded status,
    regardless of what its prior exclusion status was (excluded or not
    excluded).

    MX and DX should not be confused with X or NX.  X or NX on a command is used
    to decide which lines should be used or acted upon, based on their current
    exclusion status.  MX and DX control what the exclusion status of those
    lines is to be set to, after the command in question is completed.  The
    distinction is important to understand, because X or NX can be combined with
    MX or DX on the same command.  Example:  To change all occurrences of 'ABC'
    to 'DEF' on excluded lines, and then leave them excluded, can be done by the
    command: CHANGE 'ABC' 'DEF' ALL X DX

  * Two new line command modifiers which apply to some specific line range
    commands: (C, D, LC, M, O, S, SC, T, TC, UC, X, H, U).  These new
    modifiers / and \ are used to represent a range of lines that extends from
    the entered line all the way to the top (\) or all the way to the bottom
    (/) of the file.  For example entering D/ as a line command means "Delete
    all lines from here to the bottom".

    The / modifier may be thought of as a shortcut to typing '9' many times to
    mean 'all the lines from this point forward' like a line command of D99999.
    Instead of typing all those 9's you can just say D/ to do the same thing.
    The \ is basically the same idea, but it works in the opposite direction.

  * The LOCATE command has now been enhanced greatly to not only locate
    specific line numbers or labels, but can now be used to generically search
    for lines in various conditions. e.g. LOCATE NEXT LABEL will find the next
    line containing any label.  LOCATE CHANGE will find lines flagged by the
    ==CHG> line marker.  Other options are EXCLUDED, TAG, SPECIAL, KEEP, LONG,
    and COMMAND.  The FIRST, LAST, NEXT and PREV keywords are also supported.
    LOCATE LONG is used to find lines longer than the specified LRECL length.

  * A new Picture-like string called a Format is now supported.  Format strings
    use a type code of F instead of P.  Format strings differ from Pictures in
    that the codes other than those used for copying string characters (=, < and
    >) are not associated with positions in the source text.  This makes it
    possible to use F strings to "insert" and "format" values in ways
    traditional P strings cannot do.

  * New features with Picture and Format strings: The ~ tilde code may be used
    to skip over, or "delete" corresponding positions from the source string; a
    change Picture or a Format need not be the same length as the search string;
    the use of search picture codes like $ and @ in change pictures has been
    relaxed; these codes are now permitted (whereas in ISPF, these codes cannot
    be used in change pictures even though they otherwise have no special
    meaning).

  * A new command CASE, which takes an operand of C or T.  CASE is a PROFILE
    setting and is associated with the file type.  CASE controls how a search
    string is treated in FIND, CHANGE and similar commands, and is used when a
    string is not enclosed in quotes, or if a string is enclosed in quotes but
    does not contain a type code like C or T.  CASE does not affect letters that
    are within R strings, and does not apply to X strings, but does apply to P
    and F strings.

    For CASE C, the case of letters is treated "as is" or case-sensitive; for
    CASE T, the case of of letters is treated as case-insensitive.  The current
    state of the CASE option is shown on the status line as a C or T.

    The current CASE setting is respected by the SORT command.  As well, when
    Picture or Format search strings (with string types of P or F) contain
    letters, the matching process for these letters respects the CASE C or
    CASE T mode in effect at the time.

    When search strings contain explicit C or T string types, the C or T search
    string and its case-sensitivity is honored as in traditional ISPF, and the
    CASE mode in effect at the time is disregarded for such strings.

    In conjunction with this change, SPFLite fully supports and respects search
    strings of both types C and T, which it did not do previously.

  * Case-conformant text changes may be achieved by using a string of T'xxx' as
    a change-string value.  The character casing of the result string will
    conform to the casing of the source string, which is determined on a string
    by string basis.  When a case-conformant change string is longer than the
    search string, the upper or lower casing of the 'tail end' of the result is
    determined by 'propagating' the case of the last letter of the search
    string.  For example, CHANGE T'one' T'two' will change 'one' to 'two', 'One'
    to 'Two' and 'ONE' to 'TWO'.  CHANGE T'ONE' T'FOUR' will change 'One' to
    'Four' because the casing of lower-case 'e' in the third position of 'One'
    becomes propagated to the fourth position of T'FOUR' to become 'r'.

  * A new "show" line/block command S/SS is used to un-exclude a range of lines,
    regardless of the prior exclusion status of a block.  If the S line command
    is placed on an excluded line range, that entire excluded range becomes
    un-excluded.  This is a new use for the S line command, and the legacy ISPF
    S line command has been renamed to SI (Show Indentation).  The S/SS line
    commands may be thought of as the opposite of existing line commands X/XX.

  * KEEP and DROP primary commands may be used to selectively delete certain
    lines when groups of two or more adjacent lines have the same line tag.

  * A relative line label uses a defined line label to define a region of lines
    with respect to that label.  The following describes all allowable forms of
    relative line labels:

    .ABC                             the line .ABC

    .\ABC or .<>ABC or .ABC         all lines other than line .ABC

    .>ABC                            all lines after line .ABC

    .>=ABC                           the line .ABC and all lines after it

    .<ABC                            all lines before line .ABC

    .<=ABC                           the line .ABC and all lines before it

  * The PRINT command can now be run with a single operand (SETUP).  This will
    allow you to select a default printer for SPFLite output other than the
    Windows default printer.  Following the choice of printer, you will then
    be presented with a Font selection dialog to choose what Font, Pitch and
    Style (Bold, Italic, etc.) you prefer.

    The values chosen, along with the printer Duplex setting (if the printer
    supports Duplex) will be saved as your standard PRINT command settings.

  * The Join line command (J) has been extended from a single line join only, to
    a multi-line command.   Multiple lines may be joined either by appending a
    number to the J (like J5) or by using the standard JJ/JJ block command
    notation.  As well, a companion command has been created called Glue
    (G/GG).  The operation of Join and Glue are almost identical.  Join connects
    the data with one intervening blank character between the data from each
    line, while Glue joins lines together with no intervening blanks between
    them.

  * New primary commands RLOC and RLOCFIND.  RLOC will repeat the last generic
    LOCATE command.  For example, if the last generic locate was LOCATE CHG
    NEXT, then RLOC will continue to locate changed lines.  The RLOCFIND
    combines the capabilities of the new RLOC command with the traditional ISPF
    command RFIND, in order to repeat the last FIND or LOCATE command, whichever
    was issued most recently.  This makes RLOCFIND useful enough that many users
    may wish to set RLOCFIND as the command mapped to the F5 key rather than
    RFIND.

  * New line commands to trim, pad and truncate lines:

    Commands TR/TRR/TRTR ("Trim") are used to trim trailing blanks from one or
    more lines.  Their sole purpose is to selectively trim trailing blanks; no
    other data changes take place.

    Commands PL/PLL/PLPL ("Pad to Length") are used to force one or more lines
    to have an explicit minimum length.  Their sole purpose is to selectively
    add trailing blanks; no other data changes take place.

    Commands TL/TLL/TLTL ("Truncate to Length") are used to force one or more
    lines to have an explicit fixed length.  This action may involve deletion of
    non-blank data characters from the right-hand side of selected lines.

  * The representation of excluded lines is now shown in a new simplified design
    appearing as:  ------ ----------------------- < 001234 > ------.  This is a
    'fixed format' layout which is easier to find and read, especially when a
    file contains many interspersed instances of excluded and non-excluded
    lines.

  * File Manager will 'remember' the displayed list's position properly so
    that returning to the FM screen will not lose positioning.

  * The HELP command will now accept an operand to allow opening the Help file
    directly at a specified primary or line command. e.g. HELP EXCLUDE.

  * The DELETE primary command has a new, relaxed syntax that accepts the
    keyword ALL but treats it as optional and assumed.  This makes the DELETE
    syntax compatible with many different SPF-type editor programs.  In
    addition, unlike ISPF, the command DELETE ALL is now allowed in SPFLite as a
    legal command and will delete the entire edit file, and thus must be used
    with care.


Between 4.4.7 and 4.4.9
=======================

 * The 4.4.8 and 4.4.9 releases were entirely bug fixes, no new features.

Between 4.4.6 and 4.4.7
=======================

 * Correct intermittent crashes when ENDing an Edit.
 * Correct character case testing in the Picture literals to correctly handle
   the additional characters in the European languages.
 * Correct display handling of long path names in File Manager when screen
   width is very narrow.
 * Correct handling of Newline key when display is in Hex mode.

Between 4.4.5 and 4.4.6
=======================

 * Use different Installer / packaging to prevent false AV warnings.
 * Correct error in CLIP mode not autosaving to Clipboard at END.

Between 4.4.4 and 4.4.5
=======================

 * Correct error in CANCEL of a newly created file.
 * Correct error in calculating visible top/bottom of display screen.  This
   could affect positioning performed by Find/RFind/Change/RChange processing.


Between 4.4.3 and 4.4.4
=======================

 * Correct bug in Find/Change using the WORD option.


Between 4.4.2 and 4.4.3
=======================

 * Correct minor bug in marking textvia the keyboard.


Between 4.4.1 and 4.4.2
=======================

 Enhancements / New Features
 ===========================

  * The SPFLite screen can now be re-sized by normal stretching operations, in
    addition to specifying the width and height in the Preferences - Screen
    setting.  Altering the Font selection or Font size is still done in the
    Preferences settings.

  * Add monitoring of files while they are being Edited/Browsed for changes by
    other applications in the system.  When modifications are detected, you
    will be given the option to reload the modified data and replace the text
    currently in the edit buffer.

  * Add Column Marking.  This option is similar to TABS.  It will provide a
    slim vertical line on the screen at specified column locations to assist in
    aligning columnar data.  The columns specified are independent of TABS
    columns; they may be the same, or different.  The color of the vertical
    line is specified in the Preferences - Screen tab.  The column marking is
    retained between sessions, and may be different for each file type.   The
    new MARK line command is otherwise handled just like the TABS line
    command.

  * FIND, EXCLUDE and the 1st operand of CHANGE may now use Regular Expression
    format for the search.  This is similar to the Use of the Picture literal
    (e.g.  P'==##==') for those users who are familiar with and comfortable
    using Regular Expressions.   The operand is coded, like the Picture literal
    except the leading literal type character is 'R'.   For example to find the
    letters ABC at the end of a line code R'ABC$'.  Full details of the Regular
    Expression syntax will be in the Help file.

  * Expand key mapping again to add the Ctl and Alt combinations with the
    numeric (0-9) and special character keys (`-=[];'\,./).  As well, allow Ctl
    and Alt keys to be mapped as individual keys and still be used in
    combination with other keys.

  * Prevent Numlock key from altering the overall system Numlock status.

  * Add Numlock support.  The keypad may now be mapped as before for use as
    Function keys, etc.  and will function this way when NumLock is OFF.   When
    NumLock is ON (i.e.  LED is lit) the keypad will function as a normal
    numeric keypad.   Since the NumLock key is mappable, toggling between
    NumLock ON and NumLock OFF must be done with the Shift-Numlock
    combination.

  * Display column numbers in status line when cursor is on TABS, BNDS or MARK
    lines.

  * Add TOP and BOTTOM/BOT scroll commands.

  * BNDS added to the settings maintained by file type, like TABS, CAPS, DLMS
    and MARK.

  * If OPEN creates an Empty file because the file did not exist, and is still
    empty when an END command is entered, you will be prompted as to whether
    you really wish to save the empty file or delete it.

  * Prevent DLMS line command from removing the blank as a delimiter.  If
    DLMS=> line is completely blanked/erased, then the default set of DLMS
    characters will be recreated.

  * Line range operands  (.aa, .bb, etc.) support has been added to the
    following commands:

     FIND, CHANGE, RESET, SORT, and EXCLUDE

  * Alter text select to use inverse video of the selection area rather than a
    simple line box around the selection.

  * Some New 'primitive' key functions are now available, these are all to
    provide a more familiar Windows style Cut / Paste operation ability:

      Users who are running a 4.4.0 or 4.4.1 release will have to manually use
      Preferences - Keymap to activate these new keys.

      'MRKx' four companion commands MRKU, MRKD, MRKL and MRKR (Up, Down, Left
             and Right) to support marking (MRK) of text via the keyboard in
             the same manner as text can be selected with the mouse.

             The keyboard text selection will support selecting areas larger
             than a visible screen as well as stretching/shrinking of the
             selected area.  Mouse support for selection is still restricted to
             a single screen.

             For new SPFLite installs, these will be defaulted to the Shift-Up,
             Down, Left and Right arrow keys.

      'KCPY' new keyboard function to separate the Cut of marked text on the
             screen from the classic ISPF CUT command which is related to whole
             text lines selected with CC/MM line commands.  It functions like
             the normal Windows Ctl-C keyboard command.

             For new SPFLite installs, this will be defaulted to the Ctl-C key.

      'KPAS' which is a new keyboard level paste command, different from both
             the Primary PASTE and BPAS (below) commands.  KPAS will allow
             pasting from the Clipboard into the middle of text lines, as well
             as pasting into the Primary command line.  The function will honor
             the INS/OVR status to either Insert the text (shifting existing
             data right) or Overtype the existing data.  If more than one line
             exists in the clipboard, only the 1st line will be used.

             For new SPFLite installs, this will be defaulted to the Ctl-V key.

      'BPAS' (Block Paste) this is the previous BPASTE primary command which
             has moved to become a keyboard function for compatability with the
             other cut / paste functions.

             BPAS will also now position the cursor following the last
             character of the pasted data.

             For new SPFLite installs, this will be defaulted to the Alt-V key.

 Maintenance / Bug Fixes
 =======================

  * Correct handling of the NewLine key when below the last line.

  * Correct positioning following Paste / Overlay.

  * Correct an error which caused the Back-Tab function to 'disappear'.

  * Reset ==CHG> indication on any activity in the line number field as well as
    text field.

  * For clarity, add spacer pixels between text margins and screen border.

  * Add missing aliases for the line commands TAB, BND and DLM.

  * Add aliases .ZF and .ZL for .ZFIRST and .ZLAST.

  * Correct Move --> Overlay to work like SPF itself regarding equal characters
    in the two lines.

  * A mouse click to position the cursor on the command line will automatically
    move the cursor to the left margin if the command field is blank.

  * UNDO now properly restores the modified data indicator along with the data.

Between 4.4.0 and 4.4.1
=====================

  * Correct nasty startup bug in 4.4.0


Between 4.3.2 and 4.4.0
=====================

  Enhancements
  ____________

  * Add additional overall command and operand aliases to match real SPF usage.

  * Extend PFKeys from 36 to 48 by allowing the Alt-Fx combination to be used.
    i.e.  there are now unaltered, Shift, Control and Alt versions of the F1
    thru F12 keys.

  * Extend key mapping to include Alt-A to Alt-Z, as well as Ctl/Shift/Alt
    combinations with the following keys:  Backspace, Delete, Down, End, Enter,
    Home, Insert, Left, PgDown, PgUp, Right, and Up.  This should considerably
    assist when using Laptop type keyboards.

  * The "Re-Open last file at Start" option of the Preferences - General tab
    has been enhanced so that SPFLite will re-open the SET of files that were
    being edited when SPFLite last terminated.  Note this works properly only
    when SPFLite is terminated using the Close Button (X) on the Title bar, not
    if tabs are closed individually.

  * Alter the 'Modified' indicator.  A modified file will now be indicated by
    the characters (M) in front of the filename on the Tab header.  This will
    allow the modified status of all open tabs to be seen at once as well as on
    BROWSE and CLIP tabs which previously did not show Modified status.

  * Enhance File Manager operation to properly monitor for changes in the
    currently displayed directory regardless of where or how altered.

  * Allow user control of the delimiters used to determine WORD, PREFIX and
    SUFFIX searches by the FIND and CHANGE commands.  This will allow proper
    support for programming languages which allow special characters to be part
    of variable names.  e.g.  characters like _ .  - etc.

    A new line command DLMS (Delimiters) will display the current set of
    delimiter characters and you may alter these as desired.  Like the TABS
    line data, the values set for DLMS are retained uniquely by file type.
    i.e.  You may have separate delimiter sets for TXT files, CPP files, CMD
    files etc.

  * Add new line command 'N' - New line.   This is just like the 'I' - Insert
    command except the lines inserted are permanent and will remain as blank
    lines even if unused.

  * Add a new Primary command - SAVEAS.  This saves the current text as a new
    file and immediately swaps the current tab to using the new filename as the
    defalt filename.  Just like the comparable Windows file system Save As
    does.

  * Enhance PASTE command.  As well as specifying an A/B to indicate where to
    insert the data, you may now use the O / OO (Overlay) line commands to
    request the Clipboard data be overlaid onto existing text lines rather than
    simply inserted.

  * Enhance cursor mode (INS/OVR) handling to keep modes in multiple tabs
    unique.

  * The CAN/CANCEL command will close the current tab if File Manager is active
    and switch to the File Manager screen.  If File Manager is not active, it
    will simply 'throw away' the current edit and remain on the current tab.

  * Support Print Screen key (and its Shift, Ctl, and Alt versions).  This will
    provide 4 variations of capturing the current screen:
      PrtScr       - Captures the entire SPFLite screen to the clipboard in
                     Text mode.

      Ctl-PrtScr   - Captures only the text area of the screen to the clipboard
                     in Text mode.

      Shft-PrtScr  - Prints the entire SPFLite screen to the Default Printer.

      Alt-PrtScr   - Captures the entire screen to a LOG filein Append mode.

    Note: If you wish a normal Windows Screen Print it should be done when
          SPFLite does NOT have the keyboard focus, for obvious reasons.

  Bug fixes / Maintenance
  _______________________

  * Conversion of Help file to different Help Authoring tool.  I would
    appreciate it if any 'oops' in the conversion could be reported.  Mostly
    they will be in the Internal Topic Links which had to be manually
    converted.

  * Correct Insert line cleanup following an UNDO command.   Remove '''''' line
    markers earlier in processing to indicate sooner that they are real lines.

  * Correct parsing of Scroll amount field to better match the real SPF
    parsing.

  * Simplify format of the Status line.

  * Correct cursor positioning when Left/Right scrolling with fixed amounts
    (PAGE/HALF/etc.)

  * Correct minor errors in Up/Down commands for differing scroll amounts and
    RULER status.

  * Correct missing error messages when error occurs during new tab creation.

  * Correct RETRIEVE recall when doing repeated recalls of the same command.

  * Correct parse error in SORT command when optional operands were omitted.

Between 4.3.1 and 4.3.2
=====================

  * Add error message when invalid Colorize control file statement detected.

  * Fix Duh!  error.  An = sign was not being considered a delimiter when
    FIND/CHANGE were searching for WORD operands.

  * Correct some errors related to switching in and out of HEX mode.

  * Correct missing function keys in Preferences key mapping.  Sort Real-Key
    selection list.

  * Allow mouse selection of blocks of text from the screen (i.e.  not
    necessarily entire lines.) When a CUT command is issued with a selected
    text block present, then ONLY that selected block is copied.

  * A new command BPASTE (Block Paste) will perform an overlay type block paste
    where the current cursor location is the upper-left corner of the paste
    area.  Any existing text is overlaid, lines will be lengthened as needed
    and additional lines added if the paste block extends past the last line.

  * Improvements to the loading speed for text files, particularly large ones,
    and add a visual progress indicator of activity during loading or saving of
    large files.

  * Allow key mapping of the Ctl-A thru Ctl-Z keys.  Activate via the KeyMap
    tab of Preferences.  The default is as in previous versions (NOT to map)
    and to pass Ctl keys through as normal text characters.  This will aid
    SPFLite on laptop keyboards where it is easy to 'run out' of map'able
    keys.  As well, mapping (for example) Ctl-C and Ctl-V to PFKeys set to CUT
    and BPASTE will allow cut/paste operations using familiar Windows
    short-cuts.

Between 4.3.0 and 4.3.1
=====================

  * Correct error in assigning default directories.

Between 4.2b and 4.3.0
=====================

  * Alter default mapping for the KeyPad Ins/Del keys to actually BE Ins/Del.

  * Several cosmetic changes related to cursor positioning after some commands
    to more closely match the real ISPF actions.

  * Correct certain cursor positioning when movement passes through Excluded
    lines.

  * When using File Manager, a mouse Left-Click may now be used on any of the
    detail line items displayed to simulate the entry of an "S" (Select) +
    <Enter> for that line.  This provides an alternate and usually quicker
    method of navigation when moving up/down/through file directories.

  * New option for the naming of BKP files.  Previously the .BKP level was
    always added to the end of the Edit filename (e.g.  Test.txt backup would
    be Test.txt.BKP).  This caused the filetype of all backup files to be the
    same and also incorrectly reflect the type of file.  A new Preferences
    option may be selected to have the .BKP level INSERTED before the file
    type.  (e.g Test.txt backup would be Test.BKP.txt)

  * Add support for basic handling of UniCode encoded files.  The support
    provides for translation on Input and for re-translation to the same
    encoding format on output.  While editing, only normal ANSI character
    handling is performed based on your current default codepage.  Encoding
    support is provided for UTF-8 and UTF-16 (both Big-Endian and
    Little-Endian).  See the new ENCODING command as well as a new Help section
    "Handling Unicode Files"

  * Alter handling of filenames and default directories.  It had become rather
    inconsistent since the introduction of the File Manager option.

    Now, when no operand at all or only a simple unqualified filename is
    provided for the CREATE, REPLACE, OPEN or EDIT commands, the default
    directory used for writing the file or for the file open dialog's starting
    directory will be determined as follows:

    -- If there is an active file being edited in the tab where the command is
       issued, then the Path for THAT Active file is used as the default for
       the command.

    -- If there is NO active file (i.e. the tab header displays (Empty):

       -- If File Manager is active, the current displayed directory of File
          Manager will be used.

       -- If File Manager is NOT active, then the Preferences setting for
          Default Open directory will be used (Last Used or Working).  Remember
          'Working' means the Windows working directory when SPFLite was
          started.

  * As well as the above, file names passed on the command line to SPFLite when
    starting, will always use the Working Directory as the default location
    unless the passed filename is a complete full pathname (which will of
    course be used).



Between 4.2a and 4.2b
=====================

  * Adjust TS line command to keep indent of split lines the same.

  * Correct calculation of mouse click cursor location when adjacent to window
    border.

  * Correct Profile Preferences dialog.  The Mouse and Key Mapping pull-down
    lists for 3270 keys were missing the UP, RIGHT and TAB settings.

Between 4.2 and 4.2a
====================

Bug Fixes
---------

  * Correct Colorise parsing error introduced by the new ESCAPECHR support.

  * Correct cursor positioning in File Manager when switching to directories
    with fewer display items than the previous directory.

  * Correct corrupted Help and PDF Documentation files.

Between 4.1c and 4.2
========================

Enhancements
------------

  * Introduce an optional integrated File Manager to assist in managing and
    selecting files for Edit or Browse, and for basic File Delete & Rename
    functions.  This support can be activated via an option on the Preferences
    - General Tab.

  * Improve Colorize support:
      > New MIXEDCASE YES/NO option to Colorize files to support languages
        which are sensitive to the case of keywords.  (e.g.  Java)
      > New ESCAPECHR x option to allow specification of an ESC character
        sequence for those languages that use this.   e.g.  With ESCAPECHR \
        the following would be a valid literal.
                                        'What\'s the answer'

  * Add two new text support line commands:
      SC / SCSC - Sentence case.  Convert the text to sentence format.  All
                  words are first lower-cased, then the first word of each
                  'sentence' is capitalized.
      TC / TCTC - Title case.  Convert the text to Title format.  All words are
                  first lower-cased, then the first letter of each word is
                  capitalized.

  * Reinstate the Scroll amount field on the SPFLite screen to allow setting a
    different default scroll amount from the previous CSR only default.  Add
    another Preferences value to control the default starting value for the
    field.  If not altered, the default will be CSR as in previous versions.

  * An optional Label is now available for PFK definitions.  If used the label
    will be displayed by the PFSHOW line(s) rather than the actual command and
    its parameters.  To enter a Label, simply prefix the actual command with
    the label enclosed in square brackets.
        e.g.    [Test Data]Can;OPEN "D:\Public\Data\Test Data.txt"    assigned to PFK5
    would display in the PFSHOW line as 05=Test Data
                            rather than 05="Can;OPEN D:\Pu...

  * Implement the CRETRIEV primary command.

  * Add a visible "Changed" indicator to show a file has been altered since
    Open / Last Save.

  * Add X and NX operands to PRINT to allow printing of only excluded or
    non-excluded lines.

Bug Fixes
---------

  * Correct handling of Locate commands past the last line.  (e.g.  L 999999)

  * Correct Find/RFind handling of 'Not found' and wrapping back to the top to
    continue the search.

  * Altered scanning of multiple mixed line commands to improve the 'sorting
    out' of non-contiguous sets of commands.  e.g.  Copy/Move --> After groups
    with interspersed Immediate commands (I / D type).

  * Correct Preferences reporting a false error related to Key Mapping when no
    change to Key Mapping had been performed.

  * Correct OPEN processing when specifying a non-existent file from the Open
    Dialog.

  * Correct error in loading Colorize control files.

  * Revise RETRIEVE handling to more closely match the normal IBM ISPF
    handling.

  * Correct logical Screen position following a CANCEL command.

  * Correct parsing of stacked commands with embedded Cmd delimiters within
    literals.

  * Correct inadvertent altering of the Screen Height setting when PFK Show is
    activated.

  * Correct incorrect display of PF24 when PFSHOW is used.

  * Correct handling of Up/Down commands when cursor line is being deleted.

  * Correct colorize keyword lookup, it was somewhat less than 100% accurate
    before.

  * Correct colorize parsing error related to the COMMENT2 delimiter.

  * Correct error in shutting down when AUTOSAVE is set to ON.

  * Correct intermittent 'phantom' cursor when switching tabs.

  * Correct error when opening a new file in a 'CANCELed' tab.


Between 4.1b and 4.1c
========================
* Correct internal remnants of one line command corrupting subsequent line
  commands.


Between 4.1a and 4.1b
========================
* Correct previous bug fix which caused pending line commands to be
  overlooked.


Between 4.1 and 4.1a
========================
* Correct CREATE / REPLACE treating MM line commands as CC commands.

* Keep current screen location following CREATE / REPLACE command completion.

* Correct handling of default directory when multiple tabs open to different
  directories.


Between 4.0Beta2 and 4.1
========================
* Performance improvements for simple cursor movements.

* Correct handling of line number references on CREATE / REPLACE / CUT / PRINT
  commands.

* Change PAGE command name to SWAP (more logical and matches ISPF usage).  PAGE
  will be kept internally as an alias for SWAP.

* Correct handling of COPY and PASTE commands when other line commands, in
  addition to the required A/B location specifier, are entered at the same
  time.

* Add additional aliases for LCLC/UCUC commands (LL/UU) and correct parsing
  error on line commands which would allow numeric repeat factor on commands
  which do not need/support it.

* Internal changes to simplify code re: Windows common dialog prompts.

* Add new Line Command (J) - Join, which will join the specified line with the
  next line.

    e.g       J.....       Here's   some   text
              ......    Some more text
    would become the single line
              ......       Here's   some   text    Some more text

    Note multiple embedded spaces are not compressed (like the TF command) nor
    are leading spaces removed from the lines.

* SPFLite will now accept files via Drag/Drop onto the window to OPEN them (in
  a new tab if the currently selected tab is not (Empty).

* Correct handling of Background color setting when change is made from a tab
  running with a colorize setting with a different BG color than that set in
  the Preferences - Screen tab.

* New PROFILE option to request all SPFLite edits be kept as tabs in a single
  window.  e.g.  If turned ON, a file dropped on the SPFLite Icon, would simply
  Open as an edit, in a new tab, in the existing SPFLite session.  A separate
  window can always be created via the EDIT command in the currently active
  window, which will always open a new independent window.

* Ctl-LeftArrow and Ctl-Right arrow will now provide a 'quicker' way to move
  the cursor left and right.  The cursor will be moved to the start of the
  next/previous word on the line.  At the left/right end of the line, the
  cursor will move to the appropriate word on the prev/next line.

  These keys are only active on text lines, and 'word' is a simple blank
  delimited string.  i.e.  multiple words within quotes (e.g.  a literal) are
  NOT considered to be one word.

  If you dislike compound key sequences, the functions can be re-assigned to
  some other keys (like a PFK) with Profile Preferences - Key Map.   The keys
  are named CTLF and CTRT.


Between 4.0Beta1 and 4.0Beta2
=============================
* Correct default minimum size for Cursor size in Preferences - Screen to 20%.
  Values lower than 20 may not even appear on certain Font / Screen
  resolutions.

* Correct Left/Right mouse click event handling (inadvertently crippled -
  Oops).


Between 3.2 and 4.0Beta1
========================
* The main enhancement in this release is the addition of a Tabbed interface.
  You can now open multiple edits in the same window.  Each edit will appear in
  its own Tab.  Short description of Tab handling:
    > An OPEN command issued in an Edit session containing existing data will
      open a new tab.

    > An OPEN issued in an 'empty' tab (e.g.  from a prior CANCEL) will open in
      the same tab.

    > Switching tabs can be done via the mouse (clicking on the desired tab) or
      via a new primary command PAGE Next/Prev.  The command would typically be
      assigned to a PFK.
    > An END command will close the active tab (saving if appropriate).

    > A click on the Window Close button (X) will cause all tabs to close (with
      saving as appropriate)


* Correction to line number reset in Copy/Overlay handling.

* Correct recovery from illegal line commands on Top / Bottom of File lines.

* Correct RFIND start search location when cursor is not in the data area.

* Prevent program crash using X99999 line command on large files with multiple
  large blocks already excluded.

* Correct handling of CRLF setting in the Preferences General tab.

* LOCATE (L) command will now un-'X' the requested line if it is currently X'd
  out'

* Enhance FIND parsing to 1) Prevent mixed numeric/alpha operands being treated
  as numeric

                          2) Allow simple single numeric operands to be treated
                             as literals

                                e.g.    FIND 1234         will be treated as
                                        FIND "1234"

* Correction to FIND FIRST for incorrect starting column on 1st line.

* Reduce unneeded space in preferences dialog to reduce total height.

* New preference option for the Window Title.  The filename may be chosen to be
  1st in the title line.  This means the text in the Windows Task bar will
  properly identify which file is edited rather than always saying "SPFLite
  (Vx.y).......

* New Preference option to replace the Blob cursor setting.  You may now
  control the height of the Normal and Insert cursors individually, each based
  on a % height of a full Blob cursor.  The defaults are 20% for a normal
  cursor, and 90% for an Insert cursor.

* Correct handling of cursor positioning when Enter is pressed while the cursor
  is in the Line number area.

Between 3.2 and 3.1a
===================
* Performance improvements for scrolling of large text files.

* The code for handling of data entry in the line number area has been totally
  replaced.  The 1st action in the line number area will now blank the whole
  field to avoid possible incorrect line commands being formed by a blend of
  typed characters and previous line number numerics.  This change also removes
  the need for the 'Insert in Line number safely' option which has been
  removed.

* Support has been added for bookmarks (line labels).  Any character string
  starting with a period may be entered in the line number area.  e.g.  .here,
  .there, .back, etc.  Once entered you can reposition quickly to the
  bookmarked location with the Locate command.  For example,entering L .here
  would scroll the bookmarked .here line to the top of the screen.

  As well, primary commands which can have line number operands will accept
  either absolute line numbers or bookmark labels.  e.g.  PRINT NONUM .from .to
  (assuming the .from and .to labels had previously been assigned).  Primary
  commands affected are: CREATE, CUT, DELETE, LOCATE, PRINT and REPLACE.

* Enhancements to the CUT command.
   * CUT command will will now ignore X'd lines which are included in the CUT
     range.  This will allow CUT'ing of fragmented ranges of lines by excluding
     the undesired embedded ranges.
   * The CUT command will now accept an APPEND command (or any abbreviation of
     it) to request the specified CUT range be ADDED to the current contents of
     the clipboard.  e.g.  CUT 10 20 APP

* Prevent internal commands appearing in the RETRIEVE stack.

* Correct cursor positioning after an 'S' line command on an Excluded range.

* Correct Preferences processing when invoked by a PFKEY command.

* Correct Preferences 3270 Key List (typo for PF34)

* Minor spelling errors corected.

* An EDIT filename, or OPEN filename command where the filename does not exist,
  will continue and open the file as a new, empty text file rather than report
  an error.  A CANCEL out of the edit will delete the newly created file (e.g.
  it was a typo)

* The HIDE command is now a 'toggle' type command (like HEX) to turn HIDE mode
  on and off.  The HIDE operand of RESET has been removed.

* The RESET command now supports the CHANGE, COMMAND, EXCLUDED, LABEL and
  SPECIAL operands.

* EOLN (Erase to end of field) now works in line number area.

* SPFLite previously always initialized using the last used directory as the
  starting directory.  a new option now allows you to specify that it should
  use the 'Working' directory as the default.

* Format of the COLS and RULER line altered to match the format of IBM's ISPF.

Between 3.1a and 3.0b
===================
* Correct initialization code so -CLIP command option is handled properly.

* Correct Preferences handling of Insert Line Numbers Safely.

* Correct display of INI file name at the bottom of the Preferences Dialog so
  that long path/filename combinations are not truncated.

* Correct handling of Status Line after change in color preferences.

* Correct repaint of selected color choice in Preferences.

* Show effect of selected color in main window while choosing colors in
  Preferences.

* A filename specified as an operand when starting SPFLite will, if it does not
  exist, cause an empty Null file to be created rather than report as a "File
  not found" error.  If the edit is CANCELed before saving, the file will be
  deleted.

* An UP arrow while in the Command Line when Keyboard scrolling is active will
  wrap to the last line of the screen rather than remain on the Command line.

* The command line option -INIT will now accept a fully qualified filename.  If
  this is provided in place of the 'simple' INI name then SPFLite will use the
  noted filename, even if it is NOT in the normal INI path.  A 'simple' name
  will still be searched for in the normal INI path.

* The command retrieve stack, used by the RETRIEVE command, will now only save
  unique values (it will not save the same command twice) and will also now
  save the current stack between SPFLite sessions.

* Add support to Picture literals for the '.' character (any non display
  character).  The Preferences > General tab now also contains a setting to
  allow specification of 'normal' characters.  This will allow customization of
  'normal' to include national characters (,  etc.) and other special
  characters (Euro , Pound , etc.)

Between 3.0b and 3.0a
===================
* Remove PFK line insertion fix for review, it was seriously flawed.

* Correct handling color selection of Line Number area Hi/Lo.

* Correct Preferences handling of Screen Height when PFK Show is active.

* Correct Font selection when OK pressed with no font actually selected.

* Correct handling of Keyboard Scrolling selection (it was not being saved).

* Corrected logic in handling BKP file creation.

Between 3.0a and 2.16
===================
* Major change to the saving of Profile and Initialization settings.
  Previously some were kept in the INI file, and some in the System Registry.
  These settings have now been combined and will be kept in a new format INI
  file.  The INI file is now in 'standard' INI file format.

* Direct editing of the INI file is no longer needed (nor recommended).  All
  INI settings are now alterable by a Tabbed Preferences dialog.  This is
  reached via the PROFILE command.

* The TRY command no longer exists, the preferences dialog now serves this
  purpose.

* The former PROFILE and PFKEY commands will both now invoke the Preferences
  Dialog.

* To better handle security in Vista (and later) systems, the INI file will no
  longer be stored in the Install directory, but in the standard user documents
  folder (e.g.  My Documents\SPFLite in XP, or Documents\SPFLite in Vista).

* User macros (*.SPM files) and colorize files (*.CLR) files will also be
  stored in the same data directory.  The initial execution of SPFLite V3.00
  will handle copying these files to the new location.

* Screen color customization can now select the full range of available colors,
  not just the simple basic 16 'standard' colors.

* CLR (Colorize control files) may also now use the full range of available
  colors.  See the Help Appendix for the change to the SCHEME statement.

* As much as possible, previous settings have been migrated automatically,
  however it was not possible to handle them all.  The first execution of this
  release will automatically place you into the Preferences Dialog.  Two main
  areas not converted were the Keyboard Mapping, and the Screen color
  settings.  As well TABS settings which were automatically saved for each
  edited file type will not have been converted.

* If SPFLite is copied to a removeable drive (e.g.  a USB thumbdrive) and
  executed from the removeable drive, then the EXE file location will be used
  to look for the INI, SPM and CLR files.  This will enable a properly
  customized SPFLite to be used on systems to which it has never been
  installed.

* Correction to handling screen background color during colorize processing.

* Correction to handling of LEFTCLICK and RIGHTCLICK options when the CHRx
option is selected.

* Correction to UP command when cursor is in line number area of the last line
  on the screen.

* Correction to PFK insertion of line commands when the cursor is IN the Top Of
  Data / Bottom of Data text area.

* Yet another tweak to line command parsing.

* Correct Find logic when search literal contains trailing blanks, or is all
  blanks.

* Some more optimizations using new compiler features.

Between 2.16 and 2.15
===================

* Correct handling of dead keys with International keyboard layouts.

* Add support to CLR files to point at a different (common) CLR file to use.
  This will allow a single common CLR file to support multiple source file
  types.  See Help file for more details.

* Add Beep (if ERRORBEEP ON) when character key hit when in a non-typeable
  area.

* Finally (for the many requesting it) add HEX support.

* Add support for Hex literals as well.   e.g. x'3132'.

* Add PROFILE option (ROpenLast - Yes/No).  If YES, and no filename is provided
  on the command line, SPFLite will re-Open the last file edited when
  starting.

Between 2.15 and 2.14
===================

* Correct nasty bug which, for larger files, would cause lines to be split in
  two.

Between 2.14 and 2.13
===================

* Correct FIND/CHANGE command parsing for handling bounds overrides when global
  BOUNDS values are active.

* Add new command line parameter to allow alternate INI files to be specified.
  This will allow separate Startup Icons to be created for different screen
  sizes, keyboard mappings, etc.

* Due to previous item, parsing of the command line is slightly altered.  If
  you currently use the CLIP or BROWSE options, a trivial format change to the
  operands is required.

* Correct LOCATE command positioning when used in stacked commands which also
  move the cursor when non-data lines (X, BNDS, etc.) are present.

* Correction to properly save PROFILE ERRORBEEP setting.

* Correction to CHANGE ALL X so that all occurrences on an X'd line are done,
  not just the 1st.

* Leave cursor position unchanged unless needed when processing PFK commands.

* Alter file reading routine to always read to the true EOF.  Previously an
  embedded Ctl-Z was treated as the end of file.

* Add support for the Data Shift line commands:  << < > >> .

* Add new TRY command to allow testing new Screen Width / Height / and Font
  selections.

* Add new EDIT command to spawn additional SPFLite sessions.

* Give up on Windows MSI files for the installer. Way too picky; way too slow.

Between 2.13 and 2.12
===================

* Add NOFLUSH command for Batch files to prevent a command error stopping the
  execution of following commands.  e.g.  a series of CHANGE commands where
  some of the search values may not always be present.

* Correction (further) to Line Command parsing.

* Enhance keyboard routine which did not support Shift and Ctl with the
  Function keys to support additional function keys.  Note that this change has
  altered the DEFAULT sample INI file.  If you have a customized INI file you
  should review it to see if you might use this support.
    Note also the default ENTER key is now Enter (not Right-Ctl) as this seemed
    to cause a lot of confusion to new users before any customization was
    performed.

* Variety of cleanup in handling command line refreshing when command syntax
  errors occur.

* Corrections to keyboard handling of Numeric keys and Numlock combinations.

* Corrections to Search commands when search literal has trailing blanks and
  the searched for text occurs at end of line.

* Correction to F and L line commands to properly adjust for subsequent line
  commands.

* Correction for CANCEL command not resetting Left/Right scroll.

* Correction for Line Insert not scrolling to inserted line.

* Correction for FIND/CHANGE ignoring cursor position if in the line number
  area.

* Add a few more aliases for primary commands.

* Add support for the S (Show) line command.

* Correction to tab handling when on Top/Bottom of Dataset lines.

* Correct window title of Help file.

Between 2.12 and 2.11
===================

* Correction to PFKEY command which ignored settings for PFK10.

* Addition to Colorize support to allow unique color for quoted literals.  See
  the Appendix description of Colorize support for the new QUOTED keyword.

* Correction to handling variable substitution in macros.

* Correct RUN command to invoke all commands IN the SPFLite install directory.

* Allow PFK definitions to stack Primary Commands after an initial Line
  Command.


Between 2.11 and 2.10
===================

* Enhance the RUN command to allow use of the variable substitution
  characters.  (~f, ~p, etc.)

* Addition of ~l/~L variable for the current line the cursor is on.

* Addition of Source Colorize support.  See new PROFILE COLORIZE option and
  Appendix description of Colorize support and Keyword file layout.

* Correction to CREATE and REPLACE commands when used with a new file to load
  the appropriate TABS and Colorize defaults for the file extension.

* Correction (again) to line command parsing.

* Correct error which caused the command line to sometimes appear to not be
  recognized.

* Correction to PASTE command to properly handle text data with non-standard
  line delimiters.  i.e.  MAC or UNIX type line endings.

Between 2.10 and 2.9
===================

* Correction to line command handling of MM/OO ranges where scrolling is needed
  to enter the commands.

* Correction in handling copied/moved BNDS or TABS lines.

* Correction to Change command handling of blank search string and column
  oriented data.

* Correction to handling of RETRIEVEd commands.

* Correction to Save Open file dialogue from forcing .txt extension.

* Correction to parsing of operands containing mixed single and double quotes.

* Correction to search logic during backward searches (PREV operand).

* Correction to search hi-lighting when line ultimately becomes Excluded.

* Enhance search logic to treat short or null lines as space filled during
  compares.

* Blank lines in the INI file are now treated as comments.

* Addition of optional Beep for error messages.  See PROFILE ErrorBeep ON/OFF.

* Addition of PROMPT as an option of PROF AUTOSAVE in addition to ON/OFF.

* Addition of CAPS status to filetype data saving along with the TABS line.

* Addition of support for a limited Macro ability.  Support for a simple file
  of Primary commands with operand variable substitution.

* Addition of a Font package on the SPFLite web site to supply some alternative
  fixed pitch fonts for use with SPFLite.

Between 2.9 and 2.8
===================

* Corrections so that Shortcuts dropped on the SPFLite icon will properly open
  the file to which the shortcut points.

* Correct error where the 'F' Line command prior to a Change command could
  corrupt Data.

* Correct error which could cause crashes at program termination under some
  Windows versions.

* Correct error in PRINT command handling of line ranges.

* Improvements to File loading speed for larger files.

* Update to finally add UNDO support.

* Update to allow keyboard mapping to specify a actual character to substitute
  as well as the normal 3278 control keys.  e.g.  make the keypad back into a
  'normal' numeric keypad.

* Update to support NONUM operand on PRINT command.

* Update to support a BROWSE mode to prevent accidental changing and saving of
  data when using SPFLite to simply browse files.

* Update to support optional Cursor Blink/Noblink

* Update to support an optional Status line on the bottom of the screen.  Line
  will show status of: Insert, Caps, Screen cursor position, and logical data
  cursor location.

* Update to support optional display of PFK definitions at bottom of screen.

  Refer to new SET values in the INI file for:
      > CursorBlink option
      > StatLine ON/OFF
      > UNDO number of levels specification
      > Color definitions for the New Status and PFK Show lines
      > Sample use of new Leyboard mapping option (CHRx)

  Refer to the PROFILE command for PFK definition display (PROFILE PFKSHOW).

Between 2.8 and 2.7
===================

* Corrections to line command handling of ranges with Excluded lines.

* Corrections to restore the RETRIEVE command damaged by a fix in the 2.7
  release.

* Corrections for window Title bar contents following a CANCEL command.

* Updates to keyboard support.  SPFLite should now support alternate keyboard
  layouts.

Between 2.7 and 2.6
===================

* Corrections to scrolling when there are pending Line Commands.

* Several new customization options related to how Insert Mode is handled.
  There are four new PROFILE options:
    INSMODE      - ON/OFF - specifies whether to start in Insert mode or not -
                            default OFF.

    INSRESET     - ON/OFF - specifies whether to reset active Insert mode to
                            the default INSMODE on an Attn key.  Default ON.

    INSSAFELN    - ON/OFF - Specifies handling of Insert mode in the Line
                            Number area.  Default is ON.  ON  - Insert chars
                            only if trailing blanks exist in field OFF - Insert
                            always, shift and truncate at right end as needed.

    INSBLOBCUR   - ON/OFF - Specifies what cursor to use in Insert mode.  ON  -
                            Use a 'blob' cursor.  OFF - Use a normal Underline
                            cursor.

Between 2.6 and 2.5
===================

* Correct Title Bar setup when SPFLite started with a filename on the command
  line.

* Corrected cursor positioning for FIND/CHANGE.  When CHANGE text contains the
  FIND string, incorrect positioning caused SPFLite to 'loop' on the text line
  till cancelled or memory was exhausted.

* Correction to handling Repeat value on CC/MM line commands.

* Correct location of inserted BNDS line to be BEFORE the requesting line
  rather than AFTER.

* Correct RESET logic handling of 'special' lines (COLS, BNDS, etc.).

* Correct several problems when manipulating files with very large line
  counts.  Note: SPFLite's memory management is NOT designed for very large
  files (> 100,000 lines).  It will simply run slower and slower and become
  basically unusable.

Between 2.5 and 2.4
===================

* Implemented the Primary HIDE command and associated RESET HIDE.

* Corrected error handling when PASTE issued without an A/B line command.

* Corrected line command processing when multiple pending requests are
  entered.

* Numerous corrections to the handling of line commands involving XX'd out
  lines.  The errors ranged from incorrect data handling to outright crashes.

* Corrected error in handling MOVE/OVERLAY when fewer source lines than
  destination lines.

* Corrected error in Primary FLIP command.

Between 2.4 and 2.3
===================

* Corrected a long-undiscovered bug in handling Move/Overlay when the Overlay
  lines are higher in the file than the Move lines.

Between 2.3 and 2.2
===================

* Alter handling of insert mode typing in the line number area to prevent
  SPFLite interpreting shifted line numbers as numeric operands.  In Insert
  mode characters will not be inserted unless characters to the right have been
  deleted previously.   e.g.  Typing a 'D' in position 1 of Line # (000123)
  used to shift and leave the field as (D00012) - certainly NOT what was
  desired.

* Corrections to handling FIND/CHANGE/RCHANGE strings, particularly null quoted
  strings e.g.  ""


Between 2.2 and 2.1
===================

* Version 2.2 fixes a the same dumb error in the OPEN / COPY primary commands
  as 2.1 did for CREATE / REPLACE.  A true embarrassment to have missed it.

Between 2.1 and 2.0
===================

* Version 2.1 fixes a dumb error related to the CREATE / REPLACE primary
  commands when they are using the standard Windows 'Save As' dialogue box.

Between 1.4 and 2.0
===================

* Version 2.0 switches SPFLite from a Console mode application to a normal
  Windows application.

* Almost full keyboard customization is now available.  You may re-map nearly
  all the keyboard control keys as you desire.

* Some additional mouse support has been added (including MouseWheel support),
  however SPFLite treats these all as extensions to the basic keyboard
  functioning.  No change to keyboard operation (other than the new keyboard
  mapping) has been made.

* Keyboard mappings and customization of the screen options have been removed
  from the PROFILE options and are now contained in an optional SPFLite.INI
  file for easier access and modification.

* A new RULER option is available to cause a ruler to appear as the top line of
  the data screen.

Between 1.3 and 1.4
===================

* Finally, with the assistance of many others in the PowerBasic forums, a way
  to access the Right-Ctl in SPFLite for use as the SPF Enter key for those who
  prefer it.  See the new PROFILE option RIGHTCTL for details.  Activating this
  option also frees up the BKSP key which will now function as a normal PC BKSP
  key.

* The mouse can now be clicked anywhere on the screen to quickly move the
  cursor to that location.

* A new PROFILE option (AUTOSCROLL) can be turned on which alters the cursor
  handling within the text data area.  Moving the cursor 'past' a boundary will
  cause the text data to scroll rather than wrap the cursor to the other side
  of the screen.

* The Close button in the Title bar has been re-activated and will be treated
  as a Primary END command.

* Pressing Enter with the cursor on an empty command line will now tab
  properly.

* Additional aliases for some of the Primary commands have been included.

* Support is available for altering the command stacking character (default of
  ;).  See the PROFILE option CMDCHR.

Between 1.2 and 1.3
===================

* Repeat FIND which reaches the top or bottom (ending in a 'Not Found') will
  continue from the Top/Bottom as appropriate.

* Added alias line commands LCC/UCC for Lower/Uppercase line range commands
  equivalent to LCLC/UCUC.

* Added support for the Picture type literal in FIND and CHANGE commands

Between 1.1 and 1.2
===================

* Correction to TF line command re: handling of lines containing quotes and/or
  double quotes

Between 1.0 and 1.1
===================

* Correction to primary CUT command in placing data in Windows clipboard.

* Correct PASTE command of text containing TAB characters (they weren't being
  expanded).

* Correct text of PASTE error message.

* Add new PROF option (DEL3270) to provide alternate DELETE key handling.

* PROF command was not displaying the status of the ENDERASE setting.

* Add command line option 'CLIP' to auto Edit/Save the clipboard contents

Between 1.0beta and 1.0
=======================

* Improve Left/Right Scrolling when cursor in actual text area.

* Add link to Help file in Start Menu Group during install.

* Correct extraction of substrings with embedded quotes (like it's).

* Correct Text Flow line command (TF) when paragraph is at bottom of document.

* Make formatting of window title consistent.

* Leave screen position 'as is' after a CUT/PASTE operation rather than TOP.

* Really long file names cause problems (grrr!)

* Correct really nasty Line Repeat errors (mispositioned Cursor, misadjustment
  of following line commands, etc.)

* Correct Right scroll when max line length < viewable screen width.

* Support UNIX/Mac style text files (i.e. line endings CRLF/LF/CR)

* Add primary PRINT command.

* Correct 'lost' instruction causing SAVE missing filename errors.

* Correct TF line command when requested flow column > max. line size

* Added CRLF primary command to simplify support for non-WIN format text
  files.

* Additional scrolling and cursor positioning cleanup when multiple commands
  issued in one interaction.

* Added Pop-Up display of current PROFILE options following any change to the
  PROFILE.

* Added Pop-Up display of current PFKEY settings following any PFKEY change.

